@lavralabs/lavra 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +159 -0
- package/bin/install.js +302 -0
- package/bin/plan-export.js +300 -0
- package/bin/plan-view.js +695 -0
- package/install.sh +136 -0
- package/package.json +28 -0
- package/plugins/lavra/.claude-plugin/plugin.json +22 -0
- package/plugins/lavra/.mcp.json +8 -0
- package/plugins/lavra/README.md +125 -0
- package/plugins/lavra/agents/design/design-implementation-reviewer.md +123 -0
- package/plugins/lavra/agents/design/design-iterator.md +219 -0
- package/plugins/lavra/agents/design/figma-design-sync.md +212 -0
- package/plugins/lavra/agents/docs/ankane-readme-writer.md +90 -0
- package/plugins/lavra/agents/research/best-practices-researcher.md +131 -0
- package/plugins/lavra/agents/research/framework-docs-researcher.md +111 -0
- package/plugins/lavra/agents/research/git-history-analyzer.md +73 -0
- package/plugins/lavra/agents/research/learnings-researcher.md +255 -0
- package/plugins/lavra/agents/research/repo-research-analyst.md +157 -0
- package/plugins/lavra/agents/review/agent-native-reviewer.md +274 -0
- package/plugins/lavra/agents/review/architecture-strategist.md +82 -0
- package/plugins/lavra/agents/review/code-simplicity-reviewer.md +109 -0
- package/plugins/lavra/agents/review/data-integrity-guardian.md +89 -0
- package/plugins/lavra/agents/review/data-migration-expert.md +118 -0
- package/plugins/lavra/agents/review/deployment-verification-agent.md +178 -0
- package/plugins/lavra/agents/review/dhh-rails-reviewer.md +94 -0
- package/plugins/lavra/agents/review/goal-verifier.md +109 -0
- package/plugins/lavra/agents/review/julik-frontend-races-reviewer.md +239 -0
- package/plugins/lavra/agents/review/kieran-python-reviewer.md +148 -0
- package/plugins/lavra/agents/review/kieran-rails-reviewer.md +130 -0
- package/plugins/lavra/agents/review/kieran-typescript-reviewer.md +139 -0
- package/plugins/lavra/agents/review/migration-drift-detector.md +307 -0
- package/plugins/lavra/agents/review/pattern-recognition-specialist.md +87 -0
- package/plugins/lavra/agents/review/performance-oracle.md +154 -0
- package/plugins/lavra/agents/review/security-sentinel.md +125 -0
- package/plugins/lavra/agents/workflow/bug-reproduction-validator.md +119 -0
- package/plugins/lavra/agents/workflow/every-style-editor.md +97 -0
- package/plugins/lavra/agents/workflow/lint.md +30 -0
- package/plugins/lavra/agents/workflow/pr-comment-resolver.md +95 -0
- package/plugins/lavra/agents/workflow/spec-flow-analyzer.md +156 -0
- package/plugins/lavra/commands/changelog.md +149 -0
- package/plugins/lavra/commands/heal-skill.md +130 -0
- package/plugins/lavra/commands/lavra-brainstorm.md +388 -0
- package/plugins/lavra/commands/lavra-ceo-review.md +388 -0
- package/plugins/lavra/commands/lavra-checkpoint.md +162 -0
- package/plugins/lavra/commands/lavra-design.md +621 -0
- package/plugins/lavra/commands/lavra-eng-review.md +262 -0
- package/plugins/lavra/commands/lavra-import.md +194 -0
- package/plugins/lavra/commands/lavra-learn.md +176 -0
- package/plugins/lavra/commands/lavra-plan.md +515 -0
- package/plugins/lavra/commands/lavra-qa.md +357 -0
- package/plugins/lavra/commands/lavra-quick.md +178 -0
- package/plugins/lavra/commands/lavra-recall.md +279 -0
- package/plugins/lavra/commands/lavra-research.md +267 -0
- package/plugins/lavra/commands/lavra-retro.md +400 -0
- package/plugins/lavra/commands/lavra-review.md +401 -0
- package/plugins/lavra/commands/lavra-ship.md +330 -0
- package/plugins/lavra/commands/lavra-triage.md +159 -0
- package/plugins/lavra/commands/lavra-work-ralph.md +521 -0
- package/plugins/lavra/commands/lavra-work-teams.md +504 -0
- package/plugins/lavra/commands/lavra-work.md +1019 -0
- package/plugins/lavra/commands/optional/agent-native-audit.md +282 -0
- package/plugins/lavra/commands/optional/feature-video.md +262 -0
- package/plugins/lavra/commands/optional/generate-command.md +146 -0
- package/plugins/lavra/commands/optional/reproduce-bug.md +97 -0
- package/plugins/lavra/commands/optional/xcode-test.md +287 -0
- package/plugins/lavra/commands/report-bug.md +155 -0
- package/plugins/lavra/commands/test-browser.md +305 -0
- package/plugins/lavra/cortex/agents/design/design-implementation-reviewer.md +127 -0
- package/plugins/lavra/cortex/agents/design/design-iterator.md +222 -0
- package/plugins/lavra/cortex/agents/design/figma-design-sync.md +215 -0
- package/plugins/lavra/cortex/agents/docs/ankane-readme-writer.md +93 -0
- package/plugins/lavra/cortex/agents/research/best-practices-researcher.md +135 -0
- package/plugins/lavra/cortex/agents/research/framework-docs-researcher.md +115 -0
- package/plugins/lavra/cortex/agents/research/git-history-analyzer.md +77 -0
- package/plugins/lavra/cortex/agents/research/learnings-researcher.md +259 -0
- package/plugins/lavra/cortex/agents/research/repo-research-analyst.md +161 -0
- package/plugins/lavra/cortex/agents/review/agent-native-reviewer.md +278 -0
- package/plugins/lavra/cortex/agents/review/architecture-strategist.md +86 -0
- package/plugins/lavra/cortex/agents/review/code-simplicity-reviewer.md +113 -0
- package/plugins/lavra/cortex/agents/review/data-integrity-guardian.md +93 -0
- package/plugins/lavra/cortex/agents/review/data-migration-expert.md +122 -0
- package/plugins/lavra/cortex/agents/review/deployment-verification-agent.md +182 -0
- package/plugins/lavra/cortex/agents/review/dhh-rails-reviewer.md +98 -0
- package/plugins/lavra/cortex/agents/review/goal-verifier.md +113 -0
- package/plugins/lavra/cortex/agents/review/julik-frontend-races-reviewer.md +243 -0
- package/plugins/lavra/cortex/agents/review/kieran-python-reviewer.md +152 -0
- package/plugins/lavra/cortex/agents/review/kieran-rails-reviewer.md +134 -0
- package/plugins/lavra/cortex/agents/review/kieran-typescript-reviewer.md +143 -0
- package/plugins/lavra/cortex/agents/review/migration-drift-detector.md +311 -0
- package/plugins/lavra/cortex/agents/review/pattern-recognition-specialist.md +91 -0
- package/plugins/lavra/cortex/agents/review/performance-oracle.md +158 -0
- package/plugins/lavra/cortex/agents/review/security-sentinel.md +129 -0
- package/plugins/lavra/cortex/agents/workflow/bug-reproduction-validator.md +123 -0
- package/plugins/lavra/cortex/agents/workflow/every-style-editor.md +101 -0
- package/plugins/lavra/cortex/agents/workflow/lint.md +33 -0
- package/plugins/lavra/cortex/agents/workflow/pr-comment-resolver.md +98 -0
- package/plugins/lavra/cortex/agents/workflow/spec-flow-analyzer.md +160 -0
- package/plugins/lavra/cortex/commands/agent-native-audit.md +286 -0
- package/plugins/lavra/cortex/commands/changelog.md +153 -0
- package/plugins/lavra/cortex/commands/create-agent-skill.md +21 -0
- package/plugins/lavra/cortex/commands/deploy-docs.md +69 -0
- package/plugins/lavra/cortex/commands/feature-video.md +266 -0
- package/plugins/lavra/cortex/commands/generate-command.md +150 -0
- package/plugins/lavra/cortex/commands/heal-skill.md +134 -0
- package/plugins/lavra/cortex/commands/lavra-brainstorm.md +392 -0
- package/plugins/lavra/cortex/commands/lavra-ceo-review.md +392 -0
- package/plugins/lavra/cortex/commands/lavra-checkpoint.md +166 -0
- package/plugins/lavra/cortex/commands/lavra-compound.md +168 -0
- package/plugins/lavra/cortex/commands/lavra-deepen.md +389 -0
- package/plugins/lavra/cortex/commands/lavra-design.md +625 -0
- package/plugins/lavra/cortex/commands/lavra-eng-review.md +266 -0
- package/plugins/lavra/cortex/commands/lavra-import.md +198 -0
- package/plugins/lavra/cortex/commands/lavra-learn.md +180 -0
- package/plugins/lavra/cortex/commands/lavra-parallel.md +910 -0
- package/plugins/lavra/cortex/commands/lavra-plan.md +519 -0
- package/plugins/lavra/cortex/commands/lavra-qa.md +361 -0
- package/plugins/lavra/cortex/commands/lavra-quick.md +182 -0
- package/plugins/lavra/cortex/commands/lavra-recall.md +283 -0
- package/plugins/lavra/cortex/commands/lavra-research.md +271 -0
- package/plugins/lavra/cortex/commands/lavra-retro.md +404 -0
- package/plugins/lavra/cortex/commands/lavra-review.md +405 -0
- package/plugins/lavra/cortex/commands/lavra-ship.md +334 -0
- package/plugins/lavra/cortex/commands/lavra-triage.md +163 -0
- package/plugins/lavra/cortex/commands/lavra-work-ralph.md +525 -0
- package/plugins/lavra/cortex/commands/lavra-work-teams.md +508 -0
- package/plugins/lavra/cortex/commands/lavra-work.md +1023 -0
- package/plugins/lavra/cortex/commands/lfg.md +30 -0
- package/plugins/lavra/cortex/commands/release-docs.md +148 -0
- package/plugins/lavra/cortex/commands/report-bug.md +159 -0
- package/plugins/lavra/cortex/commands/reproduce-bug.md +101 -0
- package/plugins/lavra/cortex/commands/resolve-pr-parallel.md +58 -0
- package/plugins/lavra/cortex/commands/resolve-todo-parallel.md +56 -0
- package/plugins/lavra/cortex/commands/test-browser.md +309 -0
- package/plugins/lavra/cortex/commands/xcode-test.md +291 -0
- package/plugins/lavra/cortex/skills/agent-browser/SKILL.md +227 -0
- package/plugins/lavra/cortex/skills/agent-native-architecture/SKILL.md +439 -0
- package/plugins/lavra/cortex/skills/andrew-kane-gem-writer/SKILL.md +188 -0
- package/plugins/lavra/cortex/skills/brainstorming/SKILL.md +197 -0
- package/plugins/lavra/cortex/skills/create-agent-skills/SKILL.md +304 -0
- package/plugins/lavra/cortex/skills/dhh-rails-style/SKILL.md +189 -0
- package/plugins/lavra/cortex/skills/dspy-ruby/SKILL.md +741 -0
- package/plugins/lavra/cortex/skills/every-style-editor/SKILL.md +138 -0
- package/plugins/lavra/cortex/skills/file-todos/SKILL.md +256 -0
- package/plugins/lavra/cortex/skills/frontend-design/SKILL.md +46 -0
- package/plugins/lavra/cortex/skills/gemini-imagegen/SKILL.md +242 -0
- package/plugins/lavra/cortex/skills/git-worktree/SKILL.md +307 -0
- package/plugins/lavra/cortex/skills/lavra-knowledge/SKILL.md +464 -0
- package/plugins/lavra/cortex/skills/project-setup/SKILL.md +418 -0
- package/plugins/lavra/cortex/skills/rclone/SKILL.md +155 -0
- package/plugins/lavra/docs/quickstart.md +267 -0
- package/plugins/lavra/examples/example-plan.md +197 -0
- package/plugins/lavra/gemini/agents/design/design-implementation-reviewer.md +130 -0
- package/plugins/lavra/gemini/agents/design/design-iterator.md +225 -0
- package/plugins/lavra/gemini/agents/design/figma-design-sync.md +218 -0
- package/plugins/lavra/gemini/agents/docs/ankane-readme-writer.md +96 -0
- package/plugins/lavra/gemini/agents/research/best-practices-researcher.md +138 -0
- package/plugins/lavra/gemini/agents/research/framework-docs-researcher.md +118 -0
- package/plugins/lavra/gemini/agents/research/git-history-analyzer.md +80 -0
- package/plugins/lavra/gemini/agents/research/learnings-researcher.md +262 -0
- package/plugins/lavra/gemini/agents/research/repo-research-analyst.md +164 -0
- package/plugins/lavra/gemini/agents/review/agent-native-reviewer.md +281 -0
- package/plugins/lavra/gemini/agents/review/architecture-strategist.md +89 -0
- package/plugins/lavra/gemini/agents/review/code-simplicity-reviewer.md +116 -0
- package/plugins/lavra/gemini/agents/review/data-integrity-guardian.md +96 -0
- package/plugins/lavra/gemini/agents/review/data-migration-expert.md +125 -0
- package/plugins/lavra/gemini/agents/review/deployment-verification-agent.md +185 -0
- package/plugins/lavra/gemini/agents/review/dhh-rails-reviewer.md +101 -0
- package/plugins/lavra/gemini/agents/review/goal-verifier.md +116 -0
- package/plugins/lavra/gemini/agents/review/julik-frontend-races-reviewer.md +246 -0
- package/plugins/lavra/gemini/agents/review/kieran-python-reviewer.md +155 -0
- package/plugins/lavra/gemini/agents/review/kieran-rails-reviewer.md +137 -0
- package/plugins/lavra/gemini/agents/review/kieran-typescript-reviewer.md +146 -0
- package/plugins/lavra/gemini/agents/review/migration-drift-detector.md +314 -0
- package/plugins/lavra/gemini/agents/review/pattern-recognition-specialist.md +94 -0
- package/plugins/lavra/gemini/agents/review/performance-oracle.md +161 -0
- package/plugins/lavra/gemini/agents/review/security-sentinel.md +132 -0
- package/plugins/lavra/gemini/agents/workflow/bug-reproduction-validator.md +126 -0
- package/plugins/lavra/gemini/agents/workflow/every-style-editor.md +103 -0
- package/plugins/lavra/gemini/agents/workflow/lint.md +36 -0
- package/plugins/lavra/gemini/agents/workflow/pr-comment-resolver.md +101 -0
- package/plugins/lavra/gemini/agents/workflow/spec-flow-analyzer.md +163 -0
- package/plugins/lavra/gemini/commands/agent-native-audit.toml +284 -0
- package/plugins/lavra/gemini/commands/beads-brainstorm.toml +292 -0
- package/plugins/lavra/gemini/commands/beads-checkpoint.toml +145 -0
- package/plugins/lavra/gemini/commands/beads-compound.toml +167 -0
- package/plugins/lavra/gemini/commands/beads-deepen.toml +388 -0
- package/plugins/lavra/gemini/commands/beads-design.toml +295 -0
- package/plugins/lavra/gemini/commands/beads-import.toml +197 -0
- package/plugins/lavra/gemini/commands/beads-parallel.toml +909 -0
- package/plugins/lavra/gemini/commands/beads-plan-review.toml +201 -0
- package/plugins/lavra/gemini/commands/beads-plan.toml +391 -0
- package/plugins/lavra/gemini/commands/beads-quick.toml +134 -0
- package/plugins/lavra/gemini/commands/beads-recall.toml +281 -0
- package/plugins/lavra/gemini/commands/beads-review.toml +338 -0
- package/plugins/lavra/gemini/commands/beads-triage.toml +161 -0
- package/plugins/lavra/gemini/commands/beads-work.toml +347 -0
- package/plugins/lavra/gemini/commands/changelog.toml +151 -0
- package/plugins/lavra/gemini/commands/create-agent-skill.toml +18 -0
- package/plugins/lavra/gemini/commands/deploy-docs.toml +68 -0
- package/plugins/lavra/gemini/commands/feature-video.toml +264 -0
- package/plugins/lavra/gemini/commands/generate-command.toml +148 -0
- package/plugins/lavra/gemini/commands/heal-skill.toml +131 -0
- package/plugins/lavra/gemini/commands/lavra-brainstorm.toml +391 -0
- package/plugins/lavra/gemini/commands/lavra-ceo-review.toml +391 -0
- package/plugins/lavra/gemini/commands/lavra-checkpoint.toml +165 -0
- package/plugins/lavra/gemini/commands/lavra-design.toml +624 -0
- package/plugins/lavra/gemini/commands/lavra-eng-review.toml +265 -0
- package/plugins/lavra/gemini/commands/lavra-import.toml +197 -0
- package/plugins/lavra/gemini/commands/lavra-learn.toml +179 -0
- package/plugins/lavra/gemini/commands/lavra-plan-review.toml +201 -0
- package/plugins/lavra/gemini/commands/lavra-plan.toml +518 -0
- package/plugins/lavra/gemini/commands/lavra-qa.toml +360 -0
- package/plugins/lavra/gemini/commands/lavra-quick.toml +181 -0
- package/plugins/lavra/gemini/commands/lavra-recall.toml +281 -0
- package/plugins/lavra/gemini/commands/lavra-research.toml +270 -0
- package/plugins/lavra/gemini/commands/lavra-retro.toml +403 -0
- package/plugins/lavra/gemini/commands/lavra-review.toml +404 -0
- package/plugins/lavra/gemini/commands/lavra-ship.toml +333 -0
- package/plugins/lavra/gemini/commands/lavra-triage.toml +161 -0
- package/plugins/lavra/gemini/commands/lavra-work-ralph.toml +523 -0
- package/plugins/lavra/gemini/commands/lavra-work-teams.toml +507 -0
- package/plugins/lavra/gemini/commands/lavra-work.toml +1022 -0
- package/plugins/lavra/gemini/commands/lfg.toml +28 -0
- package/plugins/lavra/gemini/commands/release-docs.toml +146 -0
- package/plugins/lavra/gemini/commands/report-bug.toml +157 -0
- package/plugins/lavra/gemini/commands/reproduce-bug.toml +99 -0
- package/plugins/lavra/gemini/commands/resolve-pr-parallel.toml +56 -0
- package/plugins/lavra/gemini/commands/resolve-todo-parallel.toml +54 -0
- package/plugins/lavra/gemini/commands/test-browser.toml +307 -0
- package/plugins/lavra/gemini/commands/xcode-test.toml +289 -0
- package/plugins/lavra/gemini/docs/MCP_SETUP.md +41 -0
- package/plugins/lavra/gemini/skills/agent-browser/SKILL.md +227 -0
- package/plugins/lavra/gemini/skills/agent-native-architecture/SKILL.md +439 -0
- package/plugins/lavra/gemini/skills/andrew-kane-gem-writer/SKILL.md +188 -0
- package/plugins/lavra/gemini/skills/beads-knowledge/SKILL.md +464 -0
- package/plugins/lavra/gemini/skills/brainstorming/SKILL.md +197 -0
- package/plugins/lavra/gemini/skills/create-agent-skills/SKILL.md +304 -0
- package/plugins/lavra/gemini/skills/dhh-rails-style/SKILL.md +189 -0
- package/plugins/lavra/gemini/skills/dspy-ruby/SKILL.md +741 -0
- package/plugins/lavra/gemini/skills/every-style-editor/SKILL.md +138 -0
- package/plugins/lavra/gemini/skills/file-todos/SKILL.md +256 -0
- package/plugins/lavra/gemini/skills/frontend-design/SKILL.md +46 -0
- package/plugins/lavra/gemini/skills/gemini-imagegen/SKILL.md +242 -0
- package/plugins/lavra/gemini/skills/git-worktree/SKILL.md +307 -0
- package/plugins/lavra/gemini/skills/lavra-knowledge/SKILL.md +464 -0
- package/plugins/lavra/gemini/skills/project-setup/SKILL.md +418 -0
- package/plugins/lavra/gemini/skills/rclone/SKILL.md +155 -0
- package/plugins/lavra/gemini-extension.json +50 -0
- package/plugins/lavra/gemini-src/settings.json +37 -0
- package/plugins/lavra/hooks/auto-recall.sh +210 -0
- package/plugins/lavra/hooks/check-memory.sh +169 -0
- package/plugins/lavra/hooks/hooks.json +47 -0
- package/plugins/lavra/hooks/knowledge-db.sh +255 -0
- package/plugins/lavra/hooks/memory-capture.sh +132 -0
- package/plugins/lavra/hooks/provision-memory.sh +144 -0
- package/plugins/lavra/hooks/recall.sh +152 -0
- package/plugins/lavra/hooks/subagent-wrapup.sh +44 -0
- package/plugins/lavra/hooks/teammate-idle-check.sh +29 -0
- package/plugins/lavra/opencode/agents/design/design-implementation-reviewer.md +127 -0
- package/plugins/lavra/opencode/agents/design/design-iterator.md +222 -0
- package/plugins/lavra/opencode/agents/design/figma-design-sync.md +215 -0
- package/plugins/lavra/opencode/agents/docs/ankane-readme-writer.md +93 -0
- package/plugins/lavra/opencode/agents/research/best-practices-researcher.md +135 -0
- package/plugins/lavra/opencode/agents/research/framework-docs-researcher.md +115 -0
- package/plugins/lavra/opencode/agents/research/git-history-analyzer.md +77 -0
- package/plugins/lavra/opencode/agents/research/learnings-researcher.md +259 -0
- package/plugins/lavra/opencode/agents/research/repo-research-analyst.md +161 -0
- package/plugins/lavra/opencode/agents/review/agent-native-reviewer.md +278 -0
- package/plugins/lavra/opencode/agents/review/architecture-strategist.md +86 -0
- package/plugins/lavra/opencode/agents/review/code-simplicity-reviewer.md +113 -0
- package/plugins/lavra/opencode/agents/review/data-integrity-guardian.md +93 -0
- package/plugins/lavra/opencode/agents/review/data-migration-expert.md +122 -0
- package/plugins/lavra/opencode/agents/review/deployment-verification-agent.md +182 -0
- package/plugins/lavra/opencode/agents/review/dhh-rails-reviewer.md +98 -0
- package/plugins/lavra/opencode/agents/review/goal-verifier.md +113 -0
- package/plugins/lavra/opencode/agents/review/julik-frontend-races-reviewer.md +243 -0
- package/plugins/lavra/opencode/agents/review/kieran-python-reviewer.md +152 -0
- package/plugins/lavra/opencode/agents/review/kieran-rails-reviewer.md +134 -0
- package/plugins/lavra/opencode/agents/review/kieran-typescript-reviewer.md +143 -0
- package/plugins/lavra/opencode/agents/review/migration-drift-detector.md +311 -0
- package/plugins/lavra/opencode/agents/review/pattern-recognition-specialist.md +91 -0
- package/plugins/lavra/opencode/agents/review/performance-oracle.md +158 -0
- package/plugins/lavra/opencode/agents/review/security-sentinel.md +129 -0
- package/plugins/lavra/opencode/agents/workflow/bug-reproduction-validator.md +123 -0
- package/plugins/lavra/opencode/agents/workflow/every-style-editor.md +100 -0
- package/plugins/lavra/opencode/agents/workflow/lint.md +33 -0
- package/plugins/lavra/opencode/agents/workflow/pr-comment-resolver.md +98 -0
- package/plugins/lavra/opencode/agents/workflow/spec-flow-analyzer.md +160 -0
- package/plugins/lavra/opencode/commands/agent-native-audit.md +286 -0
- package/plugins/lavra/opencode/commands/changelog.md +153 -0
- package/plugins/lavra/opencode/commands/create-agent-skill.md +21 -0
- package/plugins/lavra/opencode/commands/deploy-docs.md +69 -0
- package/plugins/lavra/opencode/commands/feature-video.md +266 -0
- package/plugins/lavra/opencode/commands/generate-command.md +150 -0
- package/plugins/lavra/opencode/commands/heal-skill.md +134 -0
- package/plugins/lavra/opencode/commands/lavra-brainstorm.md +392 -0
- package/plugins/lavra/opencode/commands/lavra-ceo-review.md +392 -0
- package/plugins/lavra/opencode/commands/lavra-checkpoint.md +166 -0
- package/plugins/lavra/opencode/commands/lavra-compound.md +168 -0
- package/plugins/lavra/opencode/commands/lavra-deepen.md +389 -0
- package/plugins/lavra/opencode/commands/lavra-design.md +625 -0
- package/plugins/lavra/opencode/commands/lavra-eng-review.md +266 -0
- package/plugins/lavra/opencode/commands/lavra-import.md +198 -0
- package/plugins/lavra/opencode/commands/lavra-learn.md +180 -0
- package/plugins/lavra/opencode/commands/lavra-parallel.md +910 -0
- package/plugins/lavra/opencode/commands/lavra-plan.md +519 -0
- package/plugins/lavra/opencode/commands/lavra-qa.md +361 -0
- package/plugins/lavra/opencode/commands/lavra-quick.md +182 -0
- package/plugins/lavra/opencode/commands/lavra-recall.md +283 -0
- package/plugins/lavra/opencode/commands/lavra-research.md +271 -0
- package/plugins/lavra/opencode/commands/lavra-retro.md +404 -0
- package/plugins/lavra/opencode/commands/lavra-review.md +405 -0
- package/plugins/lavra/opencode/commands/lavra-ship.md +334 -0
- package/plugins/lavra/opencode/commands/lavra-triage.md +163 -0
- package/plugins/lavra/opencode/commands/lavra-work-ralph.md +525 -0
- package/plugins/lavra/opencode/commands/lavra-work-teams.md +508 -0
- package/plugins/lavra/opencode/commands/lavra-work.md +1023 -0
- package/plugins/lavra/opencode/commands/lfg.md +30 -0
- package/plugins/lavra/opencode/commands/release-docs.md +148 -0
- package/plugins/lavra/opencode/commands/report-bug.md +159 -0
- package/plugins/lavra/opencode/commands/reproduce-bug.md +101 -0
- package/plugins/lavra/opencode/commands/resolve-pr-parallel.md +58 -0
- package/plugins/lavra/opencode/commands/resolve-todo-parallel.md +56 -0
- package/plugins/lavra/opencode/commands/test-browser.md +309 -0
- package/plugins/lavra/opencode/commands/xcode-test.md +291 -0
- package/plugins/lavra/opencode/docs/MCP_SETUP.md +48 -0
- package/plugins/lavra/opencode/skills/agent-browser/SKILL.md +227 -0
- package/plugins/lavra/opencode/skills/agent-native-architecture/SKILL.md +439 -0
- package/plugins/lavra/opencode/skills/andrew-kane-gem-writer/SKILL.md +188 -0
- package/plugins/lavra/opencode/skills/brainstorming/SKILL.md +197 -0
- package/plugins/lavra/opencode/skills/create-agent-skills/SKILL.md +304 -0
- package/plugins/lavra/opencode/skills/dhh-rails-style/SKILL.md +189 -0
- package/plugins/lavra/opencode/skills/dspy-ruby/SKILL.md +741 -0
- package/plugins/lavra/opencode/skills/every-style-editor/SKILL.md +138 -0
- package/plugins/lavra/opencode/skills/file-todos/SKILL.md +256 -0
- package/plugins/lavra/opencode/skills/frontend-design/SKILL.md +46 -0
- package/plugins/lavra/opencode/skills/gemini-imagegen/SKILL.md +242 -0
- package/plugins/lavra/opencode/skills/git-worktree/SKILL.md +307 -0
- package/plugins/lavra/opencode/skills/lavra-knowledge/SKILL.md +464 -0
- package/plugins/lavra/opencode/skills/project-setup/SKILL.md +418 -0
- package/plugins/lavra/opencode/skills/rclone/SKILL.md +155 -0
- package/plugins/lavra/opencode-src/package.json +13 -0
- package/plugins/lavra/opencode-src/plugin.ts +176 -0
- package/plugins/lavra/scripts/import-plan.sh +141 -0
- package/plugins/lavra/skills/agent-browser/SKILL.md +223 -0
- package/plugins/lavra/skills/agent-native-architecture/SKILL.md +435 -0
- package/plugins/lavra/skills/agent-native-architecture/references/action-parity-discipline.md +353 -0
- package/plugins/lavra/skills/agent-native-architecture/references/agent-execution-patterns.md +362 -0
- package/plugins/lavra/skills/agent-native-architecture/references/agent-native-testing.md +508 -0
- package/plugins/lavra/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
- package/plugins/lavra/skills/agent-native-architecture/references/dynamic-context-injection.md +281 -0
- package/plugins/lavra/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
- package/plugins/lavra/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +227 -0
- package/plugins/lavra/skills/agent-native-architecture/references/mcp-tool-design.md +427 -0
- package/plugins/lavra/skills/agent-native-architecture/references/mobile-patterns.md +410 -0
- package/plugins/lavra/skills/agent-native-architecture/references/product-implications.md +341 -0
- package/plugins/lavra/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
- package/plugins/lavra/skills/agent-native-architecture/references/self-modification.md +269 -0
- package/plugins/lavra/skills/agent-native-architecture/references/shared-workspace-architecture.md +517 -0
- package/plugins/lavra/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
- package/plugins/lavra/skills/brainstorming/SKILL.md +193 -0
- package/plugins/lavra/skills/create-agent-skills/SKILL.md +300 -0
- package/plugins/lavra/skills/create-agent-skills/references/api-security.md +60 -0
- package/plugins/lavra/skills/create-agent-skills/references/be-clear-and-direct.md +84 -0
- package/plugins/lavra/skills/create-agent-skills/references/best-practices.md +404 -0
- package/plugins/lavra/skills/create-agent-skills/references/common-patterns.md +121 -0
- package/plugins/lavra/skills/create-agent-skills/references/core-principles.md +103 -0
- package/plugins/lavra/skills/create-agent-skills/references/executable-code.md +92 -0
- package/plugins/lavra/skills/create-agent-skills/references/iteration-and-testing.md +164 -0
- package/plugins/lavra/skills/create-agent-skills/references/official-spec.md +185 -0
- package/plugins/lavra/skills/create-agent-skills/references/recommended-structure.md +168 -0
- package/plugins/lavra/skills/create-agent-skills/references/skill-structure.md +215 -0
- package/plugins/lavra/skills/create-agent-skills/references/using-scripts.md +113 -0
- package/plugins/lavra/skills/create-agent-skills/references/using-templates.md +112 -0
- package/plugins/lavra/skills/create-agent-skills/references/workflows-and-validation.md +122 -0
- package/plugins/lavra/skills/create-agent-skills/templates/router-skill.md +73 -0
- package/plugins/lavra/skills/create-agent-skills/templates/simple-skill.md +33 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/add-reference.md +55 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/add-script.md +59 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/add-template.md +51 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/add-workflow.md +54 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/audit-skill.md +63 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +68 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/create-new-skill.md +92 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/get-guidance.md +70 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/upgrade-to-router.md +68 -0
- package/plugins/lavra/skills/create-agent-skills/workflows/verify-skill.md +63 -0
- package/plugins/lavra/skills/file-todos/SKILL.md +252 -0
- package/plugins/lavra/skills/file-todos/assets/todo-template.md +155 -0
- package/plugins/lavra/skills/git-worktree/SKILL.md +303 -0
- package/plugins/lavra/skills/git-worktree/scripts/worktree-manager.sh +345 -0
- package/plugins/lavra/skills/lavra-knowledge/SKILL.md +460 -0
- package/plugins/lavra/skills/lavra-knowledge/references/jsonl-schema.md +104 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/SKILL.md +184 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/database-adapters.md +231 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/module-organization.md +121 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/rails-integration.md +183 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/resources.md +119 -0
- package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/SKILL.md +185 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/architecture.md +653 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/controllers.md +303 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/frontend.md +510 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/gems.md +266 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/models.md +359 -0
- package/plugins/lavra/skills/optional/dhh-rails-style/references/testing.md +338 -0
- package/plugins/lavra/skills/optional/dspy-ruby/SKILL.md +737 -0
- package/plugins/lavra/skills/optional/dspy-ruby/assets/config-template.rb +187 -0
- package/plugins/lavra/skills/optional/dspy-ruby/assets/module-template.rb +300 -0
- package/plugins/lavra/skills/optional/dspy-ruby/assets/signature-template.rb +221 -0
- package/plugins/lavra/skills/optional/dspy-ruby/references/core-concepts.md +674 -0
- package/plugins/lavra/skills/optional/dspy-ruby/references/observability.md +366 -0
- package/plugins/lavra/skills/optional/dspy-ruby/references/optimization.md +603 -0
- package/plugins/lavra/skills/optional/dspy-ruby/references/providers.md +418 -0
- package/plugins/lavra/skills/optional/dspy-ruby/references/toolsets.md +502 -0
- package/plugins/lavra/skills/optional/every-style-editor/SKILL.md +134 -0
- package/plugins/lavra/skills/optional/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
- package/plugins/lavra/skills/optional/frontend-design/SKILL.md +42 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/SKILL.md +238 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/requirements.txt +2 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/scripts/compose_images.py +157 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/scripts/edit_image.py +144 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/scripts/gemini_images.py +263 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/scripts/generate_image.py +133 -0
- package/plugins/lavra/skills/optional/gemini-imagegen/scripts/multi_turn_chat.py +216 -0
- package/plugins/lavra/skills/optional/rclone/SKILL.md +151 -0
- package/plugins/lavra/skills/optional/rclone/scripts/check_setup.sh +60 -0
- package/plugins/lavra/skills/project-setup/SKILL.md +414 -0
- package/plugins/lavra/tests/build-index.sh +116 -0
- package/plugins/lavra/tests/recall-bench.sh +224 -0
- package/plugins/lavra/tests/search-fts5.sh +65 -0
- package/plugins/lavra/tests/search-grep.sh +54 -0
- package/plugins/lavra/tests/test-queries.jsonl +25 -0
- package/scripts/apply-context-optimizations.py +345 -0
- package/scripts/convert-cortex.ts +257 -0
- package/scripts/convert-gemini.ts +369 -0
- package/scripts/convert-opencode.ts +313 -0
- package/scripts/package.json +27 -0
- package/scripts/pre-release-check.sh +176 -0
- package/scripts/select-opencode-models.sh +178 -0
- package/scripts/shared/model-config.json +17 -0
- package/scripts/shared/model-mapping.ts +129 -0
- package/scripts/shared/security.ts +97 -0
- package/scripts/shared/yaml-parser.ts +55 -0
- package/scripts/sqlite-to-jsonl.py +207 -0
- package/scripts/test-compatibility.ts +539 -0
- package/scripts/test-features.sh +342 -0
- package/scripts/test-installation.sh +514 -0
- package/scripts/test-security.ts +275 -0
- package/scripts/trim-agent-descriptions.py +177 -0
- package/uninstall.sh +133 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Generated by beads-compound v0.6.0
|
|
2
|
+
# DO NOT EDIT - changes will be overwritten on next install
|
|
3
|
+
|
|
4
|
+
description = "Save session progress by filing beads, capturing knowledge, and syncing state"
|
|
5
|
+
|
|
6
|
+
prompt = """
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Save session progress by filing beads for work done and capturing knowledge comments, without ending the session.
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<process>
|
|
13
|
+
|
|
14
|
+
### Step 1: Review Session Work
|
|
15
|
+
|
|
16
|
+
Scan the conversation history for:
|
|
17
|
+
- Code changes made: `git diff` and `git diff --cached`
|
|
18
|
+
- Bugs fixed, features added, refactors performed
|
|
19
|
+
- Technical decisions made
|
|
20
|
+
- Insights discovered
|
|
21
|
+
|
|
22
|
+
### Step 2: File Beads Issues
|
|
23
|
+
|
|
24
|
+
For each distinct unit of work done during this session that doesn't already have a bead:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bd create --title="<descriptive title>" --type=<task|bug|feature> --priority=2
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If work is complete, close it immediately:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bd close <id>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If work is in progress, mark it:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
bd update <id> --status=in_progress
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Check existing issues first to avoid duplicates:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
bd list --status=open
|
|
46
|
+
bd list --status=in_progress
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Step 3: Add Knowledge Comments
|
|
50
|
+
|
|
51
|
+
For each filed or existing bead that was worked on, add at least one knowledge comment:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
bd comments add <id> "LEARNED: <key technical insight>"
|
|
55
|
+
bd comments add <id> "DECISION: <what was chosen and why>"
|
|
56
|
+
bd comments add <id> "FACT: <constraint, gotcha, or environment detail>"
|
|
57
|
+
bd comments add <id> "PATTERN: <recurring convention or idiom>"
|
|
58
|
+
bd comments add <id> "INVESTIGATION: <root cause analysis>"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
These will be auto-captured by the memory-capture hook.
|
|
62
|
+
|
|
63
|
+
### Step 4: Commit Changes
|
|
64
|
+
|
|
65
|
+
If there are uncommitted changes:
|
|
66
|
+
|
|
67
|
+
1. Check status: `git status`
|
|
68
|
+
2. Stage only session-changed files (NOT `git add -A`)
|
|
69
|
+
3. Commit with descriptive message
|
|
70
|
+
|
|
71
|
+
### Step 5: Sync Beads
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
bd backup
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 6: Optional Simplicity Check
|
|
78
|
+
|
|
79
|
+
If significant code was written this session, offer a quick code-simplicity check:
|
|
80
|
+
|
|
81
|
+
Use **AskUserQuestion tool**: "Would you like a quick simplicity review of the code changes?"
|
|
82
|
+
|
|
83
|
+
If yes:
|
|
84
|
+
- Task code-simplicity-reviewer("Review the code changes from this session for unnecessary complexity")
|
|
85
|
+
|
|
86
|
+
### Step 7: Suggest Knowledge Capture
|
|
87
|
+
|
|
88
|
+
If problems were solved during this session, suggest documenting them:
|
|
89
|
+
|
|
90
|
+
"You solved some interesting problems this session. Want to run `/beads-compound` to capture them as reusable knowledge?"
|
|
91
|
+
|
|
92
|
+
### Step 8: Report
|
|
93
|
+
|
|
94
|
+
Print a summary:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Checkpoint saved:
|
|
98
|
+
|
|
99
|
+
Beads created:
|
|
100
|
+
- BD-123: Fix login validation
|
|
101
|
+
- BD-124: Add password reset flow
|
|
102
|
+
|
|
103
|
+
Beads closed:
|
|
104
|
+
- BD-120: Update user schema
|
|
105
|
+
|
|
106
|
+
Knowledge captured:
|
|
107
|
+
- LEARNED: OAuth tokens expire after 1 hour
|
|
108
|
+
- DECISION: Using JWT for session management
|
|
109
|
+
- FACT: PostgreSQL constraints prevent duplicate emails
|
|
110
|
+
|
|
111
|
+
Remaining in-progress:
|
|
112
|
+
- BD-124: Add password reset flow (40% complete)
|
|
113
|
+
|
|
114
|
+
Session continues. Use /beads-checkpoint again to save more progress.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
</process>
|
|
118
|
+
|
|
119
|
+
<success_criteria>
|
|
120
|
+
- All distinct work units have corresponding beads (created or existing)
|
|
121
|
+
- At least one knowledge comment logged per bead worked on
|
|
122
|
+
- Uncommitted changes committed
|
|
123
|
+
- Beads synced via `bd backup`
|
|
124
|
+
- Summary report printed with beads created, closed, and in-progress
|
|
125
|
+
</success_criteria>
|
|
126
|
+
|
|
127
|
+
<guardrails>
|
|
128
|
+
- Context is preserved - you can keep working after checkpoint
|
|
129
|
+
- Use this frequently during long sessions
|
|
130
|
+
- All knowledge is auto-captured and will be available next session
|
|
131
|
+
- Beads are synced but not pushed (use `bd push` separately if needed)
|
|
132
|
+
</guardrails>
|
|
133
|
+
|
|
134
|
+
<handoff>
|
|
135
|
+
After the checkpoint report, use the **AskUserQuestion tool** to present next steps:
|
|
136
|
+
|
|
137
|
+
**Question:** "Checkpoint saved. What would you like to do next?"
|
|
138
|
+
|
|
139
|
+
**Options:**
|
|
140
|
+
1. **Continue `/beads-work`** - Resume implementing the current bead
|
|
141
|
+
2. **Run `/beads-review`** - Multi-agent code review on changes so far
|
|
142
|
+
3. **Keep working** - Continue the session without a specific command
|
|
143
|
+
</handoff>
|
|
144
|
+
|
|
145
|
+
"""
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Generated by beads-compound v0.6.0
|
|
2
|
+
# DO NOT EDIT - changes will be overwritten on next install
|
|
3
|
+
|
|
4
|
+
description = "Document a recently solved problem to compound your team's knowledge"
|
|
5
|
+
|
|
6
|
+
prompt = """
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Coordinate multiple subagents working in parallel to document a recently solved problem. Captures problem solutions while context is fresh, creating structured knowledge entries in `.lavra/memory/knowledge.jsonl` for searchability and future reference.
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<context>
|
|
13
|
+
**Why "compound"?** Each documented solution compounds your team's knowledge. The first time you solve a problem takes research. Document it, and the next occurrence takes minutes. Knowledge compounds.
|
|
14
|
+
|
|
15
|
+
**Usage:**
|
|
16
|
+
```bash
|
|
17
|
+
/beads-compound # Document the most recent fix
|
|
18
|
+
/beads-compound BD-007 # Document solution for specific bead
|
|
19
|
+
/beads-compound [brief context] # Provide additional context hint
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**The Compounding Philosophy:**
|
|
23
|
+
|
|
24
|
+
1. First time you solve "N+1 query in brief generation" -> Research (30 min)
|
|
25
|
+
2. Document the solution -> knowledge.jsonl entries (5 min)
|
|
26
|
+
3. Next time similar issue occurs -> Auto-recalled (instant)
|
|
27
|
+
4. Knowledge compounds -> Team gets smarter
|
|
28
|
+
|
|
29
|
+
**Each unit of engineering work should make subsequent units of work easier - not harder.**
|
|
30
|
+
|
|
31
|
+
**Preconditions:**
|
|
32
|
+
- Problem has been solved (not in-progress)
|
|
33
|
+
- Solution has been verified working
|
|
34
|
+
- Non-trivial problem (not simple typo or obvious error)
|
|
35
|
+
</context>
|
|
36
|
+
|
|
37
|
+
<guardrails>
|
|
38
|
+
**Research subagents return TEXT DATA only - NO file writes.**
|
|
39
|
+
|
|
40
|
+
Subagents in Phase 1 (research) must NOT use Write, Edit, or create any files. They analyze and return text data to the orchestrator. Only knowledge entries via `bd comments add` should be written (which triggers automatic capture via the memory-capture hook).
|
|
41
|
+
</guardrails>
|
|
42
|
+
|
|
43
|
+
<process>
|
|
44
|
+
|
|
45
|
+
### 1. **Context Analyzer** (Parallel)
|
|
46
|
+
- Extracts conversation history
|
|
47
|
+
- Identifies problem type, component, symptoms
|
|
48
|
+
- If a bead ID is provided, reads bead details: `bd show {BEAD_ID}`
|
|
49
|
+
- Returns: knowledge entry skeleton (type, tags, content outline)
|
|
50
|
+
|
|
51
|
+
### 2. **Solution Extractor** (Parallel)
|
|
52
|
+
- Analyzes all investigation steps
|
|
53
|
+
- Identifies root cause
|
|
54
|
+
- Extracts working solution with code examples
|
|
55
|
+
- Returns: Solution content block
|
|
56
|
+
|
|
57
|
+
### 3. **Related Knowledge Finder** (Parallel)
|
|
58
|
+
- Searches `.lavra/memory/knowledge.jsonl` for related entries
|
|
59
|
+
- Identifies cross-references and links
|
|
60
|
+
- Finds related beads
|
|
61
|
+
- Returns: Links and relationships
|
|
62
|
+
|
|
63
|
+
### 4. **Prevention Strategist** (Parallel)
|
|
64
|
+
- Develops prevention strategies
|
|
65
|
+
- Creates best practices guidance
|
|
66
|
+
- Generates test cases if applicable
|
|
67
|
+
- Returns: Prevention/testing content
|
|
68
|
+
|
|
69
|
+
### 5. **Category Classifier** (Parallel)
|
|
70
|
+
- Determines optimal knowledge type (learned/decision/fact/pattern/investigation)
|
|
71
|
+
- Suggests tags based on content
|
|
72
|
+
- Returns: Type and tag recommendations
|
|
73
|
+
|
|
74
|
+
### 6. **Knowledge Writer** (Parallel)
|
|
75
|
+
- Assembles complete knowledge entries
|
|
76
|
+
- Validates JSONL format
|
|
77
|
+
- Writes entries using `bd comments add` for auto-capture
|
|
78
|
+
- Creates the entries
|
|
79
|
+
|
|
80
|
+
### 7. **Optional: Specialized Agent Invocation** (Post-Documentation)
|
|
81
|
+
Based on problem type detected, automatically invoke applicable agents:
|
|
82
|
+
- **performance_issue** -> `performance-oracle`
|
|
83
|
+
- **security_issue** -> `security-sentinel`
|
|
84
|
+
- **database_issue** -> `data-integrity-guardian`
|
|
85
|
+
- Any code-heavy issue -> `code-simplicity-reviewer`
|
|
86
|
+
|
|
87
|
+
## What It Captures
|
|
88
|
+
|
|
89
|
+
- **Problem symptom**: Exact error messages, observable behavior
|
|
90
|
+
- **Investigation steps tried**: What didn't work and why
|
|
91
|
+
- **Root cause analysis**: Technical explanation
|
|
92
|
+
- **Working solution**: Step-by-step fix with code examples
|
|
93
|
+
- **Prevention strategies**: How to avoid in future
|
|
94
|
+
- **Cross-references**: Links to related beads and knowledge
|
|
95
|
+
|
|
96
|
+
## Knowledge Entry Format
|
|
97
|
+
|
|
98
|
+
All knowledge is logged via `bd comments add` which triggers the memory-capture hook:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Root cause analysis
|
|
102
|
+
bd comments add {BEAD_ID} "INVESTIGATION: {root cause explanation with technical details}"
|
|
103
|
+
|
|
104
|
+
# Key learnings
|
|
105
|
+
bd comments add {BEAD_ID} "LEARNED: {what worked, including code patterns}"
|
|
106
|
+
|
|
107
|
+
# Important facts/constraints
|
|
108
|
+
bd comments add {BEAD_ID} "FACT: {constraint, gotcha, or important detail}"
|
|
109
|
+
|
|
110
|
+
# Patterns to follow
|
|
111
|
+
bd comments add {BEAD_ID} "PATTERN: {coding pattern or convention that solved the problem}"
|
|
112
|
+
|
|
113
|
+
# Decisions made
|
|
114
|
+
bd comments add {BEAD_ID} "DECISION: {what was chosen and why, with alternatives considered}"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Each entry is auto-tagged based on content keywords and stored in `knowledge.jsonl`.
|
|
118
|
+
|
|
119
|
+
</process>
|
|
120
|
+
|
|
121
|
+
<success_criteria>
|
|
122
|
+
- All 6 parallel subagents completed successfully
|
|
123
|
+
- At least one knowledge entry per type (LEARNED, PATTERN, INVESTIGATION) created
|
|
124
|
+
- Knowledge entries linked to the relevant bead
|
|
125
|
+
- Root cause analysis documented
|
|
126
|
+
- Prevention strategies captured
|
|
127
|
+
- Related knowledge cross-referenced
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Knowledge documentation complete!
|
|
131
|
+
|
|
132
|
+
Primary Subagent Results:
|
|
133
|
+
- Context Analyzer: Identified {problem_type} in {component}
|
|
134
|
+
- Solution Extractor: Extracted {N} code fixes
|
|
135
|
+
- Related Knowledge Finder: Found {N} related entries
|
|
136
|
+
- Prevention Strategist: Generated test cases
|
|
137
|
+
- Category Classifier: Type: {type}, Tags: [{tags}]
|
|
138
|
+
- Knowledge Writer: Created {N} knowledge entries
|
|
139
|
+
|
|
140
|
+
Specialized Agent Reviews (Auto-Triggered):
|
|
141
|
+
- {agent}: {finding}
|
|
142
|
+
|
|
143
|
+
Knowledge entries created:
|
|
144
|
+
- LEARNED: {summary 1}
|
|
145
|
+
- PATTERN: {summary 2}
|
|
146
|
+
- INVESTIGATION: {summary 3}
|
|
147
|
+
|
|
148
|
+
Linked to bead: {BEAD_ID}
|
|
149
|
+
|
|
150
|
+
This knowledge will be searchable for future reference when similar
|
|
151
|
+
issues occur.
|
|
152
|
+
```
|
|
153
|
+
</success_criteria>
|
|
154
|
+
|
|
155
|
+
<handoff>
|
|
156
|
+
What's next?
|
|
157
|
+
1. Continue workflow (recommended)
|
|
158
|
+
2. View knowledge entries: `.lavra/memory/recall.sh "{keyword}"`
|
|
159
|
+
3. Other
|
|
160
|
+
|
|
161
|
+
**Related Commands:**
|
|
162
|
+
- `/beads-plan` - Planning workflow (references documented knowledge)
|
|
163
|
+
- `/beads-checkpoint` - Quick knowledge capture during work
|
|
164
|
+
- `/beads-deepen` - Enhance plans with parallel research
|
|
165
|
+
</handoff>
|
|
166
|
+
|
|
167
|
+
"""
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
# Generated by beads-compound v0.6.0
|
|
2
|
+
# DO NOT EDIT - changes will be overwritten on next install
|
|
3
|
+
|
|
4
|
+
description = "Enhance a plan with parallel research agents for each section to add depth, best practices, and implementation details"
|
|
5
|
+
|
|
6
|
+
prompt = """
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Take an existing plan (from `/beads-plan`) and enhance each section with parallel research agents. Each major element gets dedicated research to find best practices, performance optimizations, quality enhancements, edge cases, and real-world implementation examples. The result is a deeply grounded, production-ready plan with concrete implementation details.
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<execution_context>
|
|
13
|
+
<epic_bead_id> #{{args}} </epic_bead_id>
|
|
14
|
+
|
|
15
|
+
**If the epic bead ID above is empty:**
|
|
16
|
+
1. Check for recent epic beads: `bd list --type epic --status=open --json`
|
|
17
|
+
2. Ask the user: "Which epic would you like to deepen? Please provide the bead ID (e.g., `BD-001`)."
|
|
18
|
+
|
|
19
|
+
Do not proceed until you have a valid epic bead ID.
|
|
20
|
+
</execution_context>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
**Note: The current year is 2026.** Use this when searching for recent documentation and best practices.
|
|
24
|
+
</context>
|
|
25
|
+
|
|
26
|
+
<process>
|
|
27
|
+
|
|
28
|
+
### 1. Parse and Analyze Plan Structure
|
|
29
|
+
|
|
30
|
+
<thinking>
|
|
31
|
+
First, read the epic bead and its children to identify each major section that can be enhanced with research.
|
|
32
|
+
</thinking>
|
|
33
|
+
|
|
34
|
+
**Read the epic and its children:**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Read the epic
|
|
38
|
+
bd show {EPIC_ID}
|
|
39
|
+
|
|
40
|
+
# List all child beads
|
|
41
|
+
bd list --parent {EPIC_ID} --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**For each child bead, read its description:**
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bd show {CHILD_ID}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Extract from the plan:**
|
|
51
|
+
- [ ] Overview/Problem Statement (from epic description)
|
|
52
|
+
- [ ] Child bead titles and descriptions (implementation steps)
|
|
53
|
+
- [ ] Technical approaches mentioned
|
|
54
|
+
- [ ] Code examples and file references
|
|
55
|
+
- [ ] Acceptance criteria
|
|
56
|
+
- [ ] Any UI/UX components mentioned
|
|
57
|
+
- [ ] Technologies/frameworks mentioned (Rails, React, Python, TypeScript, etc.)
|
|
58
|
+
- [ ] Domain areas (data models, APIs, UI, security, performance, etc.)
|
|
59
|
+
|
|
60
|
+
**Create a section manifest:**
|
|
61
|
+
```
|
|
62
|
+
Section 1: [Child bead title] - [Brief description of what to research]
|
|
63
|
+
Section 2: [Child bead title] - [Brief description of what to research]
|
|
64
|
+
...
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Discover and Apply Available Skills
|
|
68
|
+
|
|
69
|
+
<thinking>
|
|
70
|
+
Dynamically discover all available skills and match them to plan sections. Don't assume what skills exist - discover them at runtime.
|
|
71
|
+
</thinking>
|
|
72
|
+
|
|
73
|
+
**Step 1: Discover ALL available skills from ALL sources**
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 1. Project-local skills (highest priority - project-specific)
|
|
77
|
+
ls .claude/skills/
|
|
78
|
+
|
|
79
|
+
# 2. User's global skills (~/.claude/)
|
|
80
|
+
ls ~/.claude/skills/
|
|
81
|
+
|
|
82
|
+
# 3. Plugin skills
|
|
83
|
+
find ~/.claude/plugins/cache -type d -name "skills" 2>/dev/null
|
|
84
|
+
|
|
85
|
+
# 4. Check installed_plugins.json for all plugin locations
|
|
86
|
+
cat ~/.claude/plugins/installed_plugins.json
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Important:** Check EVERY source. Don't assume any single plugin is the only one. Use skills from ANY installed plugin that's relevant.
|
|
90
|
+
|
|
91
|
+
**Step 2: For each discovered skill, read its SKILL.md to understand what it does**
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# For each skill directory found, read its documentation
|
|
95
|
+
cat [skill-path]/SKILL.md
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Step 3: Match skills to plan content**
|
|
99
|
+
|
|
100
|
+
For each skill discovered:
|
|
101
|
+
- Read its SKILL.md description
|
|
102
|
+
- Check if any plan sections match the skill's domain
|
|
103
|
+
- If there's a match, spawn a sub-agent to apply that skill's knowledge
|
|
104
|
+
|
|
105
|
+
**Step 4: Spawn a sub-agent for EVERY matched skill**
|
|
106
|
+
|
|
107
|
+
**CRITICAL: For EACH skill that matches, spawn a separate sub-agent and instruct it to USE that skill.**
|
|
108
|
+
|
|
109
|
+
For each matched skill:
|
|
110
|
+
```
|
|
111
|
+
Task general-purpose: "You have the [skill-name] skill available at [skill-path].
|
|
112
|
+
|
|
113
|
+
YOUR JOB: Use this skill on the plan.
|
|
114
|
+
|
|
115
|
+
1. Read the skill: cat [skill-path]/SKILL.md
|
|
116
|
+
2. Follow the skill's instructions exactly
|
|
117
|
+
3. Apply the skill to this content:
|
|
118
|
+
|
|
119
|
+
[relevant plan section or full plan]
|
|
120
|
+
|
|
121
|
+
4. Return the skill's full output
|
|
122
|
+
|
|
123
|
+
The skill tells you what to do - follow it. Execute the skill completely."
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Spawn ALL skill sub-agents in PARALLEL:**
|
|
127
|
+
- 1 sub-agent per matched skill
|
|
128
|
+
- Each sub-agent reads and uses its assigned skill
|
|
129
|
+
- All run simultaneously
|
|
130
|
+
- 10, 20, 30 skill sub-agents is fine
|
|
131
|
+
|
|
132
|
+
### 3. Discover and Apply Learnings/Solutions
|
|
133
|
+
|
|
134
|
+
<thinking>
|
|
135
|
+
Check for documented learnings from knowledge.jsonl. These are solved problems stored as JSONL entries. Search for relevant learnings.
|
|
136
|
+
</thinking>
|
|
137
|
+
|
|
138
|
+
**Search for relevant learnings:**
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Search knowledge for each key topic in the plan
|
|
142
|
+
.lavra/memory/recall.sh "{topic 1}"
|
|
143
|
+
.lavra/memory/recall.sh "{topic 2}"
|
|
144
|
+
.lavra/memory/recall.sh "{technology}"
|
|
145
|
+
|
|
146
|
+
# Search with --all to include archived knowledge
|
|
147
|
+
.lavra/memory/recall.sh --all "{broad topic}"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**For each relevant learning found, spawn a sub-agent:**
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Task general-purpose: "
|
|
154
|
+
LEARNING ENTRY: [key and content from knowledge.jsonl]
|
|
155
|
+
|
|
156
|
+
Check if this learning applies to this plan:
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
[full plan content from epic + children]
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
If relevant:
|
|
163
|
+
- Explain specifically how it applies
|
|
164
|
+
- Quote the key insight or solution
|
|
165
|
+
- Suggest where/how to incorporate it
|
|
166
|
+
|
|
167
|
+
If NOT relevant after deeper analysis:
|
|
168
|
+
- Say 'Not applicable: [reason]'
|
|
169
|
+
"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Spawn sub-agents in PARALLEL for all relevant learnings.**
|
|
173
|
+
|
|
174
|
+
**These learnings are institutional knowledge - applying them prevents repeating past mistakes.**
|
|
175
|
+
|
|
176
|
+
### 4. Launch Per-Section Research Agents
|
|
177
|
+
|
|
178
|
+
<thinking>
|
|
179
|
+
For each major section in the plan, spawn dedicated sub-agents to research improvements. Use the Explore agent type for open-ended research.
|
|
180
|
+
</thinking>
|
|
181
|
+
|
|
182
|
+
**For each identified section, launch parallel research:**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Task Explore: "Research best practices, patterns, and real-world examples for: [section topic].
|
|
186
|
+
Find:
|
|
187
|
+
- Industry standards and conventions
|
|
188
|
+
- Performance considerations
|
|
189
|
+
- Common pitfalls and how to avoid them
|
|
190
|
+
- Documentation and tutorials
|
|
191
|
+
Return concrete, actionable recommendations."
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Use WebSearch for current best practices:**
|
|
195
|
+
|
|
196
|
+
Search for recent (2024-2026) articles, blog posts, and documentation on topics in the plan.
|
|
197
|
+
|
|
198
|
+
### 5. Discover and Run ALL Review Agents
|
|
199
|
+
|
|
200
|
+
<thinking>
|
|
201
|
+
Dynamically discover every available agent and run them ALL against the plan. Don't filter, don't skip, don't assume relevance. 40+ parallel agents is fine. Use everything available.
|
|
202
|
+
</thinking>
|
|
203
|
+
|
|
204
|
+
**Step 1: Discover ALL available agents from ALL sources**
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# 1. Project-local agents (highest priority - project-specific)
|
|
208
|
+
find .claude/agents -name "*.md" 2>/dev/null
|
|
209
|
+
|
|
210
|
+
# 2. User's global agents (~/.claude/)
|
|
211
|
+
find ~/.claude/agents -name "*.md" 2>/dev/null
|
|
212
|
+
|
|
213
|
+
# 3. Plugin agents
|
|
214
|
+
find ~/.claude/plugins/cache -path "*/agents/*.md" 2>/dev/null
|
|
215
|
+
|
|
216
|
+
# 4. Check installed_plugins.json to find all plugin locations
|
|
217
|
+
cat ~/.claude/plugins/installed_plugins.json
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**For review/research/design/docs agents only (SKIP workflow agents):**
|
|
221
|
+
|
|
222
|
+
**Step 2: Launch ALL agents in parallel**
|
|
223
|
+
|
|
224
|
+
For EVERY agent discovered, launch a Task in parallel:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
Task [agent-name]: "Review this plan using your expertise. Apply all your checks and patterns. Plan content: [full plan content]"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**CRITICAL RULES:**
|
|
231
|
+
- Do NOT filter agents by "relevance" - run them ALL
|
|
232
|
+
- Do NOT skip agents because they "might not apply" - let them decide
|
|
233
|
+
- Launch ALL agents in a SINGLE message with multiple Task tool calls
|
|
234
|
+
- 20, 30, 40 parallel agents is fine - use everything
|
|
235
|
+
- Each agent may catch something others miss
|
|
236
|
+
- The goal is MAXIMUM coverage, not efficiency
|
|
237
|
+
|
|
238
|
+
### 6. Wait for ALL Agents and Synthesize Everything
|
|
239
|
+
|
|
240
|
+
<thinking>
|
|
241
|
+
Wait for ALL parallel agents to complete - skills, research agents, review agents, everything. Then synthesize all findings into a comprehensive enhancement.
|
|
242
|
+
</thinking>
|
|
243
|
+
|
|
244
|
+
**Collect outputs from ALL sources:**
|
|
245
|
+
|
|
246
|
+
1. **Skill-based sub-agents** - Each skill's full output (code examples, patterns, recommendations)
|
|
247
|
+
2. **Learnings sub-agents** - Relevant documented learnings from knowledge.jsonl
|
|
248
|
+
3. **Research agents** - Best practices, documentation, real-world examples
|
|
249
|
+
4. **Review agents** - All feedback from every reviewer (architecture, security, performance, simplicity, etc.)
|
|
250
|
+
5. **Web searches** - Current best practices and articles
|
|
251
|
+
|
|
252
|
+
**For each agent's findings, extract:**
|
|
253
|
+
- [ ] Concrete recommendations (actionable items)
|
|
254
|
+
- [ ] Code patterns and examples (copy-paste ready)
|
|
255
|
+
- [ ] Anti-patterns to avoid (warnings)
|
|
256
|
+
- [ ] Performance considerations (metrics, benchmarks)
|
|
257
|
+
- [ ] Security considerations (vulnerabilities, mitigations)
|
|
258
|
+
- [ ] Edge cases discovered (handling strategies)
|
|
259
|
+
- [ ] Documentation links (references)
|
|
260
|
+
- [ ] Skill-specific patterns (from matched skills)
|
|
261
|
+
- [ ] Relevant learnings (past solutions that apply - prevent repeating mistakes)
|
|
262
|
+
|
|
263
|
+
**Deduplicate and prioritize:**
|
|
264
|
+
- Merge similar recommendations from multiple agents
|
|
265
|
+
- Prioritize by impact (high-value improvements first)
|
|
266
|
+
- Flag conflicting advice for human review
|
|
267
|
+
- Group by child bead
|
|
268
|
+
|
|
269
|
+
### 7. Enhance Child Bead Descriptions
|
|
270
|
+
|
|
271
|
+
<thinking>
|
|
272
|
+
Merge research findings back into each child bead, adding depth without changing the original structure.
|
|
273
|
+
</thinking>
|
|
274
|
+
|
|
275
|
+
**For each child bead, update its description:**
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
bd update {CHILD_ID} -d "## What
|
|
279
|
+
|
|
280
|
+
[Original content preserved]
|
|
281
|
+
|
|
282
|
+
## Context
|
|
283
|
+
|
|
284
|
+
[Original context preserved]
|
|
285
|
+
|
|
286
|
+
### Research Insights
|
|
287
|
+
|
|
288
|
+
**Best Practices:**
|
|
289
|
+
- [Concrete recommendation 1]
|
|
290
|
+
- [Concrete recommendation 2]
|
|
291
|
+
|
|
292
|
+
**Performance Considerations:**
|
|
293
|
+
- [Optimization opportunity]
|
|
294
|
+
- [Benchmark or metric to target]
|
|
295
|
+
|
|
296
|
+
**Implementation Details:**
|
|
297
|
+
[Concrete code examples from research]
|
|
298
|
+
|
|
299
|
+
**Edge Cases:**
|
|
300
|
+
- [Edge case 1 and how to handle]
|
|
301
|
+
- [Edge case 2 and how to handle]
|
|
302
|
+
|
|
303
|
+
**References:**
|
|
304
|
+
- [Documentation URL 1]
|
|
305
|
+
- [Documentation URL 2]
|
|
306
|
+
|
|
307
|
+
## Testing
|
|
308
|
+
|
|
309
|
+
[Original + enhanced testing criteria]
|
|
310
|
+
|
|
311
|
+
## Validation
|
|
312
|
+
|
|
313
|
+
[Original + enhanced validation criteria]
|
|
314
|
+
|
|
315
|
+
## Dependencies
|
|
316
|
+
|
|
317
|
+
[Original dependencies]"
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Log findings as knowledge comments:**
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
bd comments add {CHILD_ID} "INVESTIGATION: {key research finding for this step}"
|
|
324
|
+
bd comments add {CHILD_ID} "PATTERN: {recommended pattern discovered}"
|
|
325
|
+
bd comments add {CHILD_ID} "FACT: {constraint or gotcha from research}"
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### 8. Add Enhancement Summary to Epic
|
|
329
|
+
|
|
330
|
+
Update the epic bead description with a summary:
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
bd comments add {EPIC_ID} "INVESTIGATION: Plan deepened with research from [count] agents, [count] skills, and [count] learnings. Key improvements: [top 3 improvements]"
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
</process>
|
|
337
|
+
|
|
338
|
+
<success_criteria>
|
|
339
|
+
- [ ] All original content preserved in child beads
|
|
340
|
+
- [ ] Every agent recommendation either applied or explicitly noted as inapplicable
|
|
341
|
+
- [ ] Research insights clearly marked and attributed
|
|
342
|
+
- [ ] No contradictions between sections
|
|
343
|
+
- [ ] Enhancement summary accurately reflects changes
|
|
344
|
+
|
|
345
|
+
**Completeness verification:**
|
|
346
|
+
|
|
347
|
+
**Step 1: Build agent finding inventory**
|
|
348
|
+
|
|
349
|
+
For each agent that ran, list the concrete recommendations it returned. Group by child bead:
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
BEAD {CHILD_ID}: {title}
|
|
353
|
+
From architecture-strategist: [recommendation 1]
|
|
354
|
+
From security-sentinel: [recommendation 2]
|
|
355
|
+
From performance-oracle: [recommendation 3]
|
|
356
|
+
...
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Step 2: Verify each was applied**
|
|
360
|
+
|
|
361
|
+
Re-read each updated child bead description (`bd show {CHILD_ID}`) and confirm each recommendation from the inventory above is reflected. If any are missing, apply them now.
|
|
362
|
+
|
|
363
|
+
**Do not report completion until the inventory is fully accounted for.**
|
|
364
|
+
</success_criteria>
|
|
365
|
+
|
|
366
|
+
<guardrails>
|
|
367
|
+
NEVER CODE! Just research and enhance the plan.
|
|
368
|
+
</guardrails>
|
|
369
|
+
|
|
370
|
+
<handoff>
|
|
371
|
+
After updating all child beads, use the **AskUserQuestion tool** to present these options:
|
|
372
|
+
|
|
373
|
+
**Question:** "Plan deepened for epic `{EPIC_ID}`. What would you like to do next?"
|
|
374
|
+
|
|
375
|
+
**Options:**
|
|
376
|
+
1. **Run `/beads-plan-review`** - Get feedback from reviewers on enhanced plan
|
|
377
|
+
2. **Start `/beads-work`** - Begin implementing the first child bead
|
|
378
|
+
3. **Deepen further** - Run another round of research on specific sections
|
|
379
|
+
4. **View changes** - Show what was added to each child bead
|
|
380
|
+
|
|
381
|
+
Based on selection:
|
|
382
|
+
- **`/beads-plan-review`** -> Call the /beads-plan-review command with the epic bead ID
|
|
383
|
+
- **`/beads-work`** -> Call the /beads-work command with the first ready child bead ID
|
|
384
|
+
- **Deepen further** -> Ask which sections need more research, then re-run those agents
|
|
385
|
+
- **View changes** -> Show before/after for each child bead
|
|
386
|
+
</handoff>
|
|
387
|
+
|
|
388
|
+
"""
|