Interactive Project Discovery & Layout
From interkastennpx claudepluginhub mistakeknot/interagency-marketplace --plugin interkastenThis skill uses the workspace's default tool permissions.
SKILL-compact.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Guide the user through discovering, organizing, and registering their projects for Notion sync.
Use when: user says "set up projects", "discover projects", "organize my projects", "layout", or invokes /interkasten:layout.
interkasten_scan_preview, interkasten_register_project, interkasten_set_project_parent, interkasten_set_project_tags, interkasten_add_database_property, interkasten_gather_signals)interkasten_init completed (database exists)Call interkasten_scan_preview with no arguments (uses configured projects_dir).
Present the discovered tree to the user as a visual hierarchy:
Found 14 projects:
~/projects/Interverse/ [.beads]
os/clavain/ [.git, .beads] 15,000 LOC 247 commits
plugins/interflux/ [.git, .beads] 3,200 LOC 89 commits
plugins/interkasten/ [.git, .beads] 4,500 LOC 156 commits
plugins/intermute/ [.git, .beads] 2,100 LOC 63 commits
...
~/projects/standalone-tool/ [.git] 800 LOC 12 commits
Symlinks skipped: ~/projects/clavain → (duplicate of os/clavain)
Ask: "Does this look right? Any projects missing or incorrectly grouped?"
Walk through the tree with the user:
.beads nesting: "Interverse is the parent of clavain, interflux, etc. because they're nested inside its .beads boundary. Does this grouping look correct?"interkasten_set_project_parent to adjust hierarchy per user feedback.For each project (or batch of similar ones), look at the signals from interkasten_gather_signals and propose:
Doc tier with reasoning:
Tags based on signals:
has_plugin_json → suggest "claude-plugin"has_go_mod → suggest "go"has_dockerfile → suggest "deployable"Status: "Active" for recent commits, "Archived" for stale projects. Let the user override.
Present proposals in batches (3-5 projects at a time) to avoid overwhelming the user. Group similar projects together.
Before registering projects, set up the database schema:
Ask: "Your Projects database currently has Name and Last Sync. I'd recommend adding these properties — want all of them, or just some?"
Recommended properties:
Optional properties (suggest if relevant signals exist):
Call interkasten_add_database_property for each confirmed property.
Register confirmed projects with their confirmed properties. Parent-first, children after to ensure parent_id references are valid.
For each project:
interkasten_register_project with path, parent_project (if applicable), and properties (Status, Doc Tier, etc.)interkasten_set_project_tags with the confirmed tagsShow progress: "Registered 5/14 projects..."
For each registered project, scan for syncable files:
interkasten_scan_files with pattern: "**/*.md" and include_size: truePresent: "Found 8 markdown files in clavain. I'd sync these 5 key/project docs. The other 3 look like working notes — want to include them?"
Register selected files for sync via the existing doc registration flow.
Handle these user intents naturally:
| User says | Action |
|---|---|
| "These are all part of the same project" | set_project_parent to group them |
| "This one is standalone" | Register with parent: null |
| "Skip this" / "Don't register this one" | Skip registration, move to next |
| "These are all plugins" | Batch-tag with set_project_tags |
| "Re-scan" / "Scan again" | Re-run scan_preview |
| "Add a custom field" | add_database_property with user's spec |
| "What does this project do?" | Read its README.md or CLAUDE.md and summarize |
| "Show me the Notion page" | Provide the Notion URL from the entity |
| "I reorganized my projects" | Full re-scan, detect orphans (registered but path missing) |
| "Just register everything" | Batch-register all with reasonable defaults, minimal prompting |
If the user has many projects (>10), offer batch mode:
"You have 23 projects. Want me to:
For option 2: classify all projects, present a summary table, ask for corrections, then batch-register.
After layout is confirmed, save layout preferences to config via interkasten_config_set:
layout:
resolve_symlinks: true
overrides:
- path: "~/projects/Interverse/experiments"
skip: true
This ensures future re-scans respect the user's decisions.
scan_preview finds no projects: suggest checking projects_dir in configINTERKASTEN_NOTION_TOKENEnd with a summary:
Layout complete!
Registered: 12 projects (3 Product, 7 Tool, 2 Inactive)
Hierarchy: 1 monorepo (Interverse) with 10 children, 2 standalone
Tags: claude-plugin (5), go (2), deployable (3), mcp-server (4)
Files selected for sync: 47 docs across 12 projects
Notion database: https://notion.so/...
Next steps:
- Run /interkasten:onboard to generate missing docs and establish drift baselines
- Run interkasten_sync to push selected files to Notion