blooming-blockery-cli

blooming-blockery-cli

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "blooming-blockery-cli" with this command: npx skills add photonfoxlime/bb/photonfoxlime-bb-blooming-blockery-cli

blooming-blockery-cli

Use this skill when operating Blooming Blockery CLI (blooming-blockery ) and when shaping content into tree structure for better LLM context quality.

Primary goal: treat Blooming Blockery as a tree-structure based design documentation editor. Organize information into a logically correct tree so each block carries one coherent idea, and unrelated material is split into separate branches.

This skill is not only command syntax reference. It is a structure-and-context guide for deciding where information should live in the tree.

Motivation: From Vague Ideas to Implementation

Use the tree to move from uncertainty to precision:

  • Start with broad project ideas or high-level concepts.

  • Break ideas into smaller design decisions and scope boundaries.

  • Refine decisions into explicit specifications, such as requires , ensures , and invariants.

  • Continue refining specification blocks into implementable units.

  • Connect implementation steps back to the exact specification branch they satisfy.

Agents using this skill should preserve this top-down refinement flow whenever possible.

When to use

  • The user asks how to use Blooming Blockery CLI (blooming-blockery ) from terminal scripts.

  • The user needs to restructure mixed or overloaded notes into a cleaner tree.

  • The user needs LLM-ready context around a specific block.

  • The user hits CLI parsing errors with block IDs, mount formats, or panel states.

  • The user needs copyable command patterns for repeated authoring workflows.

Mental Model: Context Envelope Per Block

From src/llm/context.rs , one block's LLM context is a BlockContext made of:

  • lineage : ordered chain from root to target, where the last item is the target block itself.

  • existing_children : direct child point texts only.

  • friend_blocks : cross-references with optional perspective , optional friend lineage telescope, and optional friend children telescope.

Implications for agents using this skill:

  • Keep each block focused. If one block mixes unrelated concerns, split it.

  • Prefer children for decomposition of one topic.

  • Prefer siblings or new roots for unrelated topics.

  • Prefer friends for cross-cutting links that are related but not hierarchical.

  • Add --perspective when a friend relation is ambiguous.

  • Use telescope flags intentionally to expand friend context only when needed.

Context-Hygiene Rules for Tree Editing

  • One block, one intent.

  • If two statements cannot share the same immediate design question, split them.

  • Keep parent-child logic strict: each child should refine, justify, or execute the parent.

  • Keep implementation detail under the relevant design/spec parent.

  • Do not bury unrelated decisions deep in another topic's lineage.

  • Preserve refinement order: concept -> spec (requires /ensures /invariants) -> implementation.

  • Use blooming-blockery context <BLOCK_ID> to inspect context before LLM draft commands.

  • Use blooming-blockery nav lineage <BLOCK_ID> when checking whether placement is right.

  • Use blooming-blockery friend add instead of forced tree nesting for cross-topic links.

When Tree Structure Is Hard, Use Friend Blocks

Some content is inherently cross-cutting and does not fit cleanly under one single parent branch. In those cases:

  • Keep the main tree logically clean.

  • Use blooming-blockery friend add <TARGET_ID> <FRIEND_ID> for remote references.

  • Add --perspective to explain why the remote block matters to the target.

  • Enable telescope flags only when extra friend lineage/children are truly needed.

Friend blocks are the escape hatch for useful context that should not distort the core tree semantics.

CLI Invocation Convention

Blooming Blockery is a single binary: run without subcommands to launch the GUI, or with subcommands for CLI automation. All examples below use the full form:

blooming-blockery ...

Use blooming-blockery <subcommand> ... in instructions and automation scripts.

Global Flags

All commands support these global flags:

  • --store <PATH> : Path to the block store file (defaults to app data path)

  • --verbose : Enable verbose output (currently reserved)

  • --output <FORMAT> : Output format - table (default) or json

Block ID Format

Block IDs use a clean format like 1v1 , 2v3 where:

  • First number = slot index in the store

  • v = separator

  • Second number = generation counter (increments on reuse)

Batch-capable commands also accept comma-separated IDs in a single ID argument:

blooming-blockery show 1v1,2v1,3v1 blooming-blockery tree add-child 1v1,2v1 "Shared child text"

Batch execution is continue-on-error: all targets are attempted and errors are reported after processing completes.

Context-First Workflow Patterns

  1. Split unrelated information into separate branches

Add a sibling when topic shifts at same hierarchy level

blooming-blockery tree add-sibling <BLOCK_ID> "New topic"

Wrap current block when introducing a new organizing parent

blooming-blockery tree wrap <BLOCK_ID> "Parent concept"

Move misplaced content under the correct parent

blooming-blockery tree move <SOURCE_ID> <TARGET_ID> --under

  1. Inspect context before asking LLM features

blooming-blockery nav lineage <BLOCK_ID> blooming-blockery context <BLOCK_ID> --output json blooming-blockery friend list <BLOCK_ID> --output json

  1. Keep cross-cutting references explicit

blooming-blockery friend add <TARGET_ID> <FRIEND_ID>
--perspective "reference architecture constraint"
--telescope-lineage

Use --telescope-lineage and --telescope-children only when the added friend scope is needed for the specific LLM task.

Command Reference

Query Commands

List all root block IDs

blooming-blockery roots blooming-blockery roots --output json

Show block details

blooming-blockery show <BLOCK_ID> blooming-blockery show 1v1 --output json

Search blocks by text (case-insensitive substring)

blooming-blockery find "search query" blooming-blockery find "TODO" --limit 10

Edit the text content of a block

blooming-blockery point <BLOCK_ID> "New text content" blooming-blockery point 1v1 "Updated text"

Tree Structure Commands

Add child block under parent (parent must not be a mount)

blooming-blockery tree add-child <PARENT_ID> "Text content" blooming-blockery tree add-child 1v1 "My new idea"

Add sibling after a block

blooming-blockery tree add-sibling <BLOCK_ID> "Text content" blooming-blockery tree add-sibling 1v1 "Next sibling"

Wrap a block with a new parent

blooming-blockery tree wrap <BLOCK_ID> "Parent text" blooming-blockery tree wrap 1v1 "New parent section"

Duplicate a subtree

blooming-blockery tree duplicate <BLOCK_ID> blooming-blockery tree duplicate 1v1

Delete a subtree (removes block and all descendants)

blooming-blockery tree delete <BLOCK_ID> blooming-blockery tree delete 1v1

Move block relative to target

blooming-blockery tree move <SOURCE_ID> <TARGET_ID> --before blooming-blockery tree move <SOURCE_ID> <TARGET_ID> --after blooming-blockery tree move <SOURCE_ID> <TARGET_ID> --under

Navigation Commands

Get next visible block in DFS order

blooming-blockery nav next <BLOCK_ID> blooming-blockery nav next 1v1

Get previous visible block

blooming-blockery nav prev <BLOCK_ID> blooming-blockery nav prev 2v1

Get lineage (ancestor chain)

blooming-blockery nav lineage <BLOCK_ID> blooming-blockery nav lineage 1v1

Search-aware navigation

blooming-blockery nav find-next <BLOCK_ID> "query" blooming-blockery nav find-prev <BLOCK_ID> "query" --no-wrap

Draft Commands (LLM suggestions)

Set amplification draft (rewrite + proposed children)

blooming-blockery draft amplify <BLOCK_ID> --rewrite "Refined text" --children "Child 1" "Child 2" blooming-blockery draft amplify 1v1 --children "Just kids"

Set distillation draft (condensed version)

blooming-blockery draft distill <BLOCK_ID> --reduction "Condensed text" --redundant-children 2v1 3v1

Set instruction draft (user-authored LLM instructions)

blooming-blockery draft instruction <BLOCK_ID> --text "Make this more concise"

Set probe draft (LLM response to ask query)

blooming-blockery draft probe <BLOCK_ID> --response "The key insight is..."

List all drafts for a block

blooming-blockery draft list <BLOCK_ID>

Clear drafts (use --all or specific flags)

blooming-blockery draft clear <BLOCK_ID> --all blooming-blockery draft clear <BLOCK_ID> --amplify blooming-blockery draft clear <BLOCK_ID> --distill --instruction

Fold (Collapse) Commands

Toggle fold state

blooming-blockery fold toggle <BLOCK_ID>

Get fold status

blooming-blockery fold status <BLOCK_ID>

Friend (Cross-reference) Commands

Add friend block with optional perspective

blooming-blockery friend add <TARGET_ID> <FRIEND_ID> --perspective "Related design" blooming-blockery friend add <TARGET_ID> <FRIEND_ID> --telescope-lineage --telescope-children

Remove friend

blooming-blockery friend remove <TARGET_ID> <FRIEND_ID>

List friends

blooming-blockery friend list <TARGET_ID>

Mount (External File) Commands

Set mount path (block must be leaf, no children)

blooming-blockery mount set <BLOCK_ID> <PATH> [--format json|markdown] blooming-blockery mount set 1v1 /data/external.json blooming-blockery mount set 1v1 /notes/notes.md --format markdown

Expand mount (load external file)

blooming-blockery mount expand <BLOCK_ID>

Collapse mount (remove loaded blocks, restore mount node)

blooming-blockery mount collapse <BLOCK_ID>

Move mount backing file and update metadata

blooming-blockery mount move <BLOCK_ID> <PATH>

Inline mounted content into current store

blooming-blockery mount inline <BLOCK_ID>

Inline all mounts recursively under a subtree

blooming-blockery mount inline-recursive <BLOCK_ID>

Extract subtree to external file

blooming-blockery mount extract <BLOCK_ID> --output <PATH> [--format json|markdown] blooming-blockery mount extract 1v1 --output /backup/notes.json

Persist all expanded mounts to their source files

blooming-blockery mount save

Show mount info

blooming-blockery mount info <BLOCK_ID>

Panel Commands

Set block panel state

blooming-blockery panel set <BLOCK_ID> friends blooming-blockery panel set <BLOCK_ID> instruction

Get block panel state

blooming-blockery panel get <BLOCK_ID>

Clear block panel state

blooming-blockery panel clear <BLOCK_ID>

Context Command

Get LLM context for a block (lineage, children, friends)

blooming-blockery context <BLOCK_ID> blooming-blockery context 1v1

Common Error Patterns

  • UnknownBlock : Block ID not found in store

  • InvalidOperation :

  • Parent is a mount (cannot add children)

  • Source is ancestor of target (cycle in move)

  • Block has children (cannot set mount)

  • Attempting to add self as friend

  • IoError : Failed to read/write mount file

Agent Guidance: Choosing Structure Intentionally

When helping users author specs/docs, prefer these decisions:

  • If content answers different design questions, split into sibling branches.

  • If content elaborates one parent claim, place it as children.

  • Keep the logical chain visible: concept -> spec -> implementation.

  • Encourage explicit spec nodes with requires , ensures , and invariants before implementation-heavy branches.

  • If two branches should remain separate but mutually relevant, link via friends.

  • If friend meaning is unclear, add --perspective immediately.

  • Before generating drafts, inspect with blooming-blockery context and ensure lineage points to the intended scope.

Practical Tips

  • Use --output json for scripting and parsing results

  • Block IDs are case-insensitive

  • Mount format defaults to json but supports markdown

  • mount extract --format overrides path-extension inference

  • Batch-capable commands support comma-separated IDs:

  • show , point

  • tree add-child|add-sibling|wrap|duplicate|delete|move

  • nav next|prev|lineage

  • friend add|remove

  • fold toggle|status

  • draft instruction|probe|list|clear

  • mount set|expand|collapse|move|extract|inline|inline-recursive|info

  • context

  • For mount set|move|extract batch mode, pass a directory-like path (existing/dir or a path without extension), and each target will use <BLOCK_ID>.<ext> under that directory.

  • Panel states are friends or instruction

  • Run blooming-blockery without subcommands for GUI; with subcommands for CLI

  • If users report low-quality LLM responses, first fix tree placement and friend/telescope scope before rewriting prompts

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Tuya Cloud

Read sensor data and control Tuya IoT devices via Tuya Cloud API. Use when the user wants to list devices, read temperature, humidity, soil moisture, battery...

Registry SourceRecently Updated
Coding

Tidal CLI

Control Tidal music streaming from the terminal. Use when the user wants to search Tidal's catalog (artists, albums, tracks, videos, playlists), manage playl...

Registry SourceRecently Updated
Coding

Revenue Tracker

Live revenue tracking system for autonomous agents. Tracks MRR, assets, trades, acquisition channels, and learning metrics in real time. Generates visual ASC...

Registry SourceRecently Updated
Coding

Wip Ai Devops Toolbox Private

Complete DevOps toolkit for AI-assisted software development. Release pipeline, license compliance, copyright enforcement, repo visibility guard, identity fi...

Registry SourceRecently Updated
2860Profile unavailable