一键导入
blooming-blockery-cli
Documents the Blooming Blockery CLI contract and teaches context-first tree authoring for design specifications and documentation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Documents the Blooming Blockery CLI contract and teaches context-first tree authoring for design specifications and documentation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Extract rewrite-ready knowledge from general Rust codebases — functionality, design, engineering, Rust patterns. Use when given Rust source and asked to consolidate for recreation or rewrite.
Extract rewrite-ready knowledge from Rust/iced GUI codebases — functionality, design, engineering, iced patterns. Use when given iced Rust source and asked to consolidate for recreation or rewrite.
| name | blooming-blockery-cli |
| description | Documents the Blooming Blockery CLI contract and teaches context-first tree authoring for design specifications and documentation. |
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.
Use the tree to move from uncertainty to precision:
requires, ensures,
and invariants.Agents using this skill should preserve this top-down refinement flow whenever possible.
blooming-blockery) from terminal scripts.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:
--perspective when a friend relation is ambiguous.requires/ensures/invariants)
-> implementation.blooming-blockery context <BLOCK_ID> to inspect context before LLM draft commands.blooming-blockery nav lineage <BLOCK_ID> when checking whether placement is right.blooming-blockery friend add instead of forced tree nesting for cross-topic links.Some content is inherently cross-cutting and does not fit cleanly under one single parent branch. In those cases:
blooming-blockery friend add <TARGET_ID> <FRIEND_ID> for remote references.--perspective to explain why the remote block matters to the target.Friend blocks are the escape hatch for useful context that should not distort the core tree semantics.
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.
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 jsonBlock IDs use a clean format like 1v1, 2v3 where:
v = separatorBatch-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.
# 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
blooming-blockery nav lineage <BLOCK_ID>
blooming-blockery context <BLOCK_ID> --output json
blooming-blockery friend list <BLOCK_ID> --output json
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.
# 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"
# 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
# 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
# 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
# Toggle fold state
blooming-blockery fold toggle <BLOCK_ID>
# Get fold status
blooming-blockery fold status <BLOCK_ID>
# 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>
# 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>
# 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>
# Get LLM context for a block (lineage, children, friends)
blooming-blockery context <BLOCK_ID>
blooming-blockery context 1v1
UnknownBlock: Block ID not found in storeInvalidOperation:
IoError: Failed to read/write mount fileWhen helping users author specs/docs, prefer these decisions:
requires, ensures, and invariants
before implementation-heavy branches.--perspective immediately.blooming-blockery context and ensure lineage points
to the intended scope.--output json for scripting and parsing resultsjson but supports markdown
mount extract --format overrides path-extension inferenceshow, pointtree add-child|add-sibling|wrap|duplicate|delete|movenav next|prev|lineagefriend add|removefold toggle|statusdraft instruction|probe|list|clearmount set|expand|collapse|move|extract|inline|inline-recursive|infocontextmount 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.friends or instructionblooming-blockery without subcommands for GUI; with subcommands for CLI