beth-copilot 1.1.0 → 2.0.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/CHANGELOG.md +39 -1
- package/README.md +51 -62
- package/assets/beth-questioning.png +0 -0
- package/assets/yellowstone-beth.png +0 -0
- package/bin/cli.js +19 -410
- package/dist/__tests__/inject-skills.test.d.ts +9 -0
- package/dist/__tests__/inject-skills.test.d.ts.map +1 -0
- package/dist/__tests__/inject-skills.test.js +143 -0
- package/dist/__tests__/inject-skills.test.js.map +1 -0
- package/dist/__tests__/skills/disambiguation.test.d.ts +10 -0
- package/dist/__tests__/skills/disambiguation.test.d.ts.map +1 -0
- package/dist/__tests__/skills/disambiguation.test.js +192 -0
- package/dist/__tests__/skills/disambiguation.test.js.map +1 -0
- package/dist/__tests__/skills/hook-injection.test.d.ts +11 -0
- package/dist/__tests__/skills/hook-injection.test.d.ts.map +1 -0
- package/dist/__tests__/skills/hook-injection.test.js +173 -0
- package/dist/__tests__/skills/hook-injection.test.js.map +1 -0
- package/dist/__tests__/skills/mapping-completeness.test.d.ts +17 -0
- package/dist/__tests__/skills/mapping-completeness.test.d.ts.map +1 -0
- package/dist/__tests__/skills/mapping-completeness.test.js +281 -0
- package/dist/__tests__/skills/mapping-completeness.test.js.map +1 -0
- package/dist/__tests__/skills/pipeline-integration.test.d.ts +18 -0
- package/dist/__tests__/skills/pipeline-integration.test.d.ts.map +1 -0
- package/dist/__tests__/skills/pipeline-integration.test.js +234 -0
- package/dist/__tests__/skills/pipeline-integration.test.js.map +1 -0
- package/dist/__tests__/skills/skill-routing.test.d.ts +15 -0
- package/dist/__tests__/skills/skill-routing.test.d.ts.map +1 -0
- package/dist/__tests__/skills/skill-routing.test.js +723 -0
- package/dist/__tests__/skills/skill-routing.test.js.map +1 -0
- package/dist/__tests__/skills/trigger-coverage.test.d.ts +24 -0
- package/dist/__tests__/skills/trigger-coverage.test.d.ts.map +1 -0
- package/dist/__tests__/skills/trigger-coverage.test.js +746 -0
- package/dist/__tests__/skills/trigger-coverage.test.js.map +1 -0
- package/dist/__tests__/smoke.test.js +13 -0
- package/dist/__tests__/smoke.test.js.map +1 -1
- package/dist/__tests__/verify-skills.test.d.ts +9 -0
- package/dist/__tests__/verify-skills.test.d.ts.map +1 -0
- package/dist/__tests__/verify-skills.test.js +78 -0
- package/dist/__tests__/verify-skills.test.js.map +1 -0
- package/dist/cli/commands/beads.e2e.test.d.ts +4 -2
- package/dist/cli/commands/beads.e2e.test.d.ts.map +1 -1
- package/dist/cli/commands/beads.e2e.test.js +97 -38
- package/dist/cli/commands/beads.e2e.test.js.map +1 -1
- package/dist/cli/commands/cli-edge-cases.e2e.test.js +1 -1
- package/dist/cli/commands/cli-edge-cases.e2e.test.js.map +1 -1
- package/dist/cli/commands/close.d.ts +11 -46
- package/dist/cli/commands/close.d.ts.map +1 -1
- package/dist/cli/commands/close.e2e.test.d.ts +4 -20
- package/dist/cli/commands/close.e2e.test.d.ts.map +1 -1
- package/dist/cli/commands/close.e2e.test.js +23 -204
- package/dist/cli/commands/close.e2e.test.js.map +1 -1
- package/dist/cli/commands/close.js +26 -240
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/close.test.d.ts +7 -9
- package/dist/cli/commands/close.test.d.ts.map +1 -1
- package/dist/cli/commands/close.test.js +44 -424
- package/dist/cli/commands/close.test.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +5 -22
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.e2e.test.js +3 -59
- package/dist/cli/commands/doctor.e2e.test.js.map +1 -1
- package/dist/cli/commands/doctor.js +38 -111
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/doctor.test.js +32 -234
- package/dist/cli/commands/doctor.test.js.map +1 -1
- package/dist/cli/commands/framework-isolation.test.d.ts +1 -1
- package/dist/cli/commands/framework-isolation.test.js +2 -3
- package/dist/cli/commands/framework-isolation.test.js.map +1 -1
- package/dist/cli/commands/help.e2e.test.js +1 -5
- package/dist/cli/commands/help.e2e.test.js.map +1 -1
- package/dist/cli/commands/init-logic.e2e.test.js +12 -2
- package/dist/cli/commands/init-logic.e2e.test.js.map +1 -1
- package/dist/cli/commands/init.test.js +4 -21
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/land.d.ts +3 -15
- package/dist/cli/commands/land.d.ts.map +1 -1
- package/dist/cli/commands/land.js +13 -68
- package/dist/cli/commands/land.js.map +1 -1
- package/dist/cli/commands/land.test.d.ts +0 -1
- package/dist/cli/commands/land.test.d.ts.map +1 -1
- package/dist/cli/commands/land.test.js +2 -57
- package/dist/cli/commands/land.test.js.map +1 -1
- package/dist/cli/commands/mcp.e2e.test.js +3 -3
- package/dist/cli/commands/mcp.e2e.test.js.map +1 -1
- package/dist/cli/commands/pipeline.e2e.test.js +23 -26
- package/dist/cli/commands/pipeline.e2e.test.js.map +1 -1
- package/dist/cli/commands/pre-push-guard.d.ts +2 -12
- package/dist/cli/commands/pre-push-guard.d.ts.map +1 -1
- package/dist/cli/commands/pre-push-guard.e2e.test.js +1 -1
- package/dist/cli/commands/pre-push-guard.e2e.test.js.map +1 -1
- package/dist/cli/commands/pre-push-guard.js +2 -47
- package/dist/cli/commands/pre-push-guard.js.map +1 -1
- package/dist/cli/commands/pre-push-guard.test.d.ts +0 -1
- package/dist/cli/commands/pre-push-guard.test.d.ts.map +1 -1
- package/dist/cli/commands/pre-push-guard.test.js +15 -98
- package/dist/cli/commands/pre-push-guard.test.js.map +1 -1
- package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts +1 -1
- package/dist/cli/commands/quickstart-expanded.e2e.test.js +3 -30
- package/dist/cli/commands/quickstart-expanded.e2e.test.js.map +1 -1
- package/dist/cli/commands/quickstart.d.ts +0 -1
- package/dist/cli/commands/quickstart.d.ts.map +1 -1
- package/dist/cli/commands/quickstart.js +2 -60
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/cli/commands/quickstart.test.js +10 -104
- package/dist/cli/commands/quickstart.test.js.map +1 -1
- package/dist/cli/commands/update.d.ts +35 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.e2e.test.d.ts +24 -0
- package/dist/cli/commands/update.e2e.test.d.ts.map +1 -0
- package/dist/cli/commands/update.e2e.test.js +240 -0
- package/dist/cli/commands/update.e2e.test.js.map +1 -0
- package/dist/cli/commands/update.js +255 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/core/agents/frontmatter.test.js +1 -1
- package/dist/core/agents/frontmatter.test.js.map +1 -1
- package/dist/core/agents/handoffs.test.js +1 -1
- package/dist/core/agents/handoffs.test.js.map +1 -1
- package/dist/core/agents/loader.d.ts +4 -2
- package/dist/core/agents/loader.d.ts.map +1 -1
- package/dist/core/agents/loader.js +5 -3
- package/dist/core/agents/loader.js.map +1 -1
- package/dist/core/agents/loader.test.js +42 -4
- package/dist/core/agents/loader.test.js.map +1 -1
- package/dist/core/agents/suite.test.js +8 -7
- package/dist/core/agents/suite.test.js.map +1 -1
- package/dist/core/agents/tools.test.js +10 -8
- package/dist/core/agents/tools.test.js.map +1 -1
- package/dist/core/agents/types.test.js +1 -1
- package/dist/core/agents/types.test.js.map +1 -1
- package/dist/core/skills/loader.test.js +1 -1
- package/dist/core/skills/loader.test.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/pathValidation.d.ts +0 -5
- package/dist/lib/pathValidation.d.ts.map +1 -1
- package/dist/lib/pathValidation.js +0 -11
- package/dist/lib/pathValidation.js.map +1 -1
- package/dist/lib/pathValidation.test.js +2 -14
- package/dist/lib/pathValidation.test.js.map +1 -1
- package/package.json +3 -6
- package/sbom.json +259 -371
- package/templates/.github/agents/beth.agent.md +194 -122
- package/templates/.github/agents/developer.agent.md +30 -22
- package/templates/.github/agents/product-manager.agent.md +15 -6
- package/templates/.github/agents/researcher.agent.md +10 -7
- package/templates/.github/agents/security-reviewer.agent.md +16 -7
- package/templates/.github/agents/tester.agent.md +16 -8
- package/templates/.github/agents/ux-designer.agent.md +12 -9
- package/templates/.github/copilot-instructions.md +33 -4
- package/templates/.github/copilot-mcp-config.json +12 -0
- package/templates/.github/dependabot.yml +68 -0
- package/templates/.github/hooks/scripts/inject-skills.mjs +139 -0
- package/templates/.github/hooks/scripts/verify-skills.mjs +47 -0
- package/templates/.github/hooks/skill-enforcement.json +18 -0
- package/templates/.github/pull_request_template.md +48 -0
- package/templates/.github/skills/framer-components/SKILL.md +0 -0
- package/templates/.github/skills/prd/SKILL.md +0 -0
- package/templates/.github/skills/security-analysis/SKILL.md +798 -798
- package/templates/.github/skills/shadcn-ui/SKILL.md +561 -561
- package/templates/.github/skills/vercel-react-best-practices/AGENTS.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/SKILL.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/async-parallel.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
- package/templates/.github/skills/vercel-react-best-practices/rules/server-serialization.md +0 -0
- package/templates/.github/skills/web-design-guidelines/SKILL.md +0 -0
- package/templates/.vscode/settings.json +16 -16
- package/templates/AGENTS.md +59 -98
- package/templates/Backlog.md +80 -80
- package/assets/beth-portrait-small.txt +0 -13
- package/assets/beth-portrait.txt +0 -60
- package/bin/beth-animation.sh +0 -155
- package/bin/lib/animation.js +0 -189
- package/bin/lib/pathValidation.js +0 -233
- package/bin/lib/pathValidation.test.js +0 -280
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md
CHANGED
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md
CHANGED
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md
CHANGED
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/templates/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Beth Agent System - Recommended Settings
|
|
3
|
-
// These settings enable full agent orchestration capabilities
|
|
4
|
-
|
|
5
|
-
// Required: Allow Beth to delegate work to specialist agents
|
|
6
|
-
"chat.customAgentInSubagent.enabled": true,
|
|
7
|
-
|
|
8
|
-
// Enable agent mode in Copilot Chat
|
|
9
|
-
"chat.agent.enabled": true,
|
|
10
|
-
|
|
11
|
-
// Enable thinking/reasoning for complex tasks
|
|
12
|
-
"github.copilot.chat.agent.thinkingTool": true,
|
|
13
|
-
|
|
14
|
-
// Consistent locale for agent responses
|
|
15
|
-
"github.copilot.chat.localeOverride": "en"
|
|
16
|
-
}
|
|
1
|
+
{
|
|
2
|
+
// Beth Agent System - Recommended Settings
|
|
3
|
+
// These settings enable full agent orchestration capabilities
|
|
4
|
+
|
|
5
|
+
// Required: Allow Beth to delegate work to specialist agents
|
|
6
|
+
"chat.customAgentInSubagent.enabled": true,
|
|
7
|
+
|
|
8
|
+
// Enable agent mode in Copilot Chat
|
|
9
|
+
"chat.agent.enabled": true,
|
|
10
|
+
|
|
11
|
+
// Enable thinking/reasoning for complex tasks
|
|
12
|
+
"github.copilot.chat.agent.thinkingTool": true,
|
|
13
|
+
|
|
14
|
+
// Consistent locale for agent responses
|
|
15
|
+
"github.copilot.chat.localeOverride": "en"
|
|
16
|
+
}
|
package/templates/AGENTS.md
CHANGED
|
@@ -1,51 +1,36 @@
|
|
|
1
1
|
# Agent Instructions
|
|
2
2
|
|
|
3
|
-
This project uses
|
|
3
|
+
This project uses [Backlog.md](Backlog.md) for task tracking — the single source of truth for both agents and humans.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|------|----------|---------|
|
|
7
|
-
| [beads](https://github.com/steveyegge/beads) (`bd`) | Agents | Active work, dependencies, blockers, structured memory |
|
|
8
|
-
| [Backlog.md](Backlog.md) | Humans | Completed work archive, decisions, readable changelog |
|
|
9
|
-
|
|
10
|
-
**The rule:** beads is always current. Backlog.md gets updated when work completes.
|
|
11
|
-
|
|
12
|
-
## Quick Setup
|
|
5
|
+
## Backlog.md CLI Quick Reference
|
|
13
6
|
|
|
14
7
|
```bash
|
|
15
|
-
#
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#
|
|
22
|
-
|
|
8
|
+
# See everything at once (use --plain where supported to avoid TUI)
|
|
9
|
+
backlog task list --plain # All tasks grouped by status
|
|
10
|
+
backlog task list -s "In Progress" --plain # Filter by status
|
|
11
|
+
backlog board # Kanban board (always plain-text)
|
|
12
|
+
backlog overview # Project health stats (always plain-text)
|
|
13
|
+
|
|
14
|
+
# Task lifecycle (--plain prevents TUI after mutation)
|
|
15
|
+
backlog task create "Title" -d "Description" --plain # Create
|
|
16
|
+
backlog task edit BETH-X -s "In Progress" --plain # Start
|
|
17
|
+
backlog task edit BETH-X -s "Done" --plain # Close
|
|
18
|
+
backlog task edit BETH-X --append-notes "text" --plain # Add notes
|
|
19
|
+
|
|
20
|
+
# Search
|
|
21
|
+
backlog search "query" --plain # Fuzzy search across tasks
|
|
23
22
|
```
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
# Simple task
|
|
29
|
-
bd create "Issue title" --description="What needs to be done" -l in_progress
|
|
24
|
+
**CRITICAL:** Always use `--plain` flag on commands that support it (`task list`, `task create`, `task edit`, `search`) — without it, these commands open a TUI that agents cannot interact with. Commands like `board` and `overview` are already plain-text.
|
|
30
25
|
|
|
31
|
-
|
|
32
|
-
bd create "Feature name" --type epic -p 1
|
|
33
|
-
|
|
34
|
-
# Subtask with parent
|
|
35
|
-
bd create "Subtask" --parent <epic-id>
|
|
36
|
-
|
|
37
|
-
# Task with dependency
|
|
38
|
-
bd create "Blocked task" --deps "<blocker-id>"
|
|
39
|
-
|
|
40
|
-
# List issues / see what's ready
|
|
41
|
-
bd list
|
|
42
|
-
bd ready
|
|
26
|
+
## Quick Setup
|
|
43
27
|
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
```bash
|
|
29
|
+
# Initialize Beth in your project
|
|
30
|
+
npx beth-copilot init
|
|
46
31
|
|
|
47
|
-
#
|
|
48
|
-
npx beth-copilot
|
|
32
|
+
# Check system health
|
|
33
|
+
npx beth-copilot doctor
|
|
49
34
|
```
|
|
50
35
|
|
|
51
36
|
## Session Startup (MANDATORY)
|
|
@@ -67,67 +52,50 @@ git log --oneline origin/$(git branch --show-current)..HEAD
|
|
|
67
52
|
```
|
|
68
53
|
If there are unpushed commits from a previous session, push them or understand why they weren't pushed.
|
|
69
54
|
|
|
70
|
-
### 3.
|
|
71
|
-
Pick 1-2 issues closed in the last session and verify the changes are actually in the code:
|
|
55
|
+
### 3. Review task status
|
|
72
56
|
```bash
|
|
73
|
-
#
|
|
74
|
-
|
|
57
|
+
backlog task list --plain # See all tasks — what's open, done, in progress
|
|
58
|
+
backlog task list -s "In Progress" --plain # What's supposed to be active?
|
|
75
59
|
```
|
|
76
|
-
If
|
|
60
|
+
If a task says "In Progress" but the work is done, close it: `backlog task edit BETH-X -s "Done"`
|
|
61
|
+
If a task says "Done" but the code disagrees, reopen it: `backlog task edit BETH-X -s "In Progress"`
|
|
77
62
|
|
|
78
|
-
### 4.
|
|
63
|
+
### 4. Spot-check closed work is intact
|
|
64
|
+
Pick 1-2 tasks closed in the last session and verify the changes are actually in the code:
|
|
79
65
|
```bash
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
# Example: verify an import was actually added
|
|
67
|
+
grep -r "import.*ComponentName" src/
|
|
82
68
|
```
|
|
83
|
-
|
|
69
|
+
If the tracker says "done" but the code disagrees, re-apply the fix.
|
|
84
70
|
|
|
85
71
|
### The principle: Trust the code, not the tracker
|
|
86
72
|
|
|
87
|
-
> **War story (March 7, 2026):** A formatter reverted
|
|
88
|
-
|
|
89
|
-
This can happen to ANY file touched by agents. The most vulnerable are files touched by formatters on save (page.tsx, component files with import changes). When in doubt, check the code.
|
|
90
|
-
|
|
91
|
-
### Beads known issues
|
|
92
|
-
|
|
93
|
-
> **War story (March 9, 2026): Test pollution.** E2E tests for `bd` commands create real issues in the Dolt database. If `afterAll` cleanup doesn't run (crash, timeout, process kill), orphan "E2E test:" issues pollute `bd list` and `bd ready`, hiding real work behind 30+ garbage entries. **Fix:** `beads.e2e.test.ts` now runs a `beforeAll` safety net that searches for stale "E2E test:" issues and batch-deletes them before creating new ones. Cleanup also uses `bd delete --from-file` for speed instead of per-issue `execSync` loops.
|
|
94
|
-
|
|
95
|
-
> **War story (March 9, 2026): Tracking drift.** An epic (beth-gau) was planned in Backlog.md with 7 detailed subtasks but never created in beads. A new session saw the Backlog.md entry, tried `bd show beth-gau`, got "not found" (intermittent ID resolution), and created a duplicate epic. The duplicate was a phantom (Dolt transaction didn't persist). **Fix:** When checking for existing work, always use `bd list --json` as the source of truth — not `bd show`, which has intermittent resolution failures. And ALWAYS create beads issues before (or simultaneously with) Backlog.md entries.
|
|
73
|
+
> **War story (March 7, 2026):** A formatter reverted `app/workspace/agents/page.tsx` back to importing the old `WorkspaceAgents` component. The tracker said "routing wired up" but the code was back to the old state. Caught and fixed — but only because we checked.
|
|
96
74
|
|
|
97
|
-
|
|
75
|
+
This can happen to ANY file touched by agents. The most vulnerable are files touched by formatters on save. When in doubt, check the code.
|
|
98
76
|
|
|
99
77
|
## Workflow
|
|
100
78
|
|
|
101
79
|
### Simple Tasks
|
|
102
|
-
1. `
|
|
103
|
-
2.
|
|
104
|
-
3.
|
|
105
|
-
4.
|
|
80
|
+
1. Create a task: `backlog task create "Title" -d "Description" --plain`
|
|
81
|
+
2. Mark it in progress: `backlog task edit BETH-X -s "In Progress" --plain`
|
|
82
|
+
3. Do the work
|
|
83
|
+
4. Mark it done: `backlog task edit BETH-X -s "Done" --plain`
|
|
106
84
|
5. Commit and push
|
|
107
85
|
|
|
108
86
|
### Complex Work (Multi-Agent)
|
|
109
|
-
1.
|
|
110
|
-
2. **Create/checkout** the epic branch from main:
|
|
87
|
+
1. **Create/checkout** an epic branch from main:
|
|
111
88
|
|
|
112
89
|
```bash
|
|
113
90
|
git fetch origin main
|
|
114
91
|
git checkout -b epic/<epic-id> origin/main
|
|
115
92
|
```
|
|
116
93
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
bd create "Security tests for <feature>" --parent <epic-id> --deps "<impl-id>"
|
|
123
|
-
```
|
|
124
|
-
5. `bd ready` to find unblocked work
|
|
125
|
-
6. Route to specialists with issue IDs **and branch name**
|
|
126
|
-
7. Close subtasks as they complete
|
|
127
|
-
8. `bd epic close-eligible` when all children done
|
|
128
|
-
9. Update Backlog.md with summary
|
|
129
|
-
10. Push the epic branch
|
|
130
|
-
11. **Create a PR to `main`** using GitHub MCP (`mcp_github2_create_pull_request`)
|
|
94
|
+
2. Create a parent task: `backlog task create "Epic title" -d "Description" --plain`
|
|
95
|
+
3. Break into subtasks, route to specialists
|
|
96
|
+
4. Each subtask: create → assign → work → mark done via `backlog task edit`
|
|
97
|
+
5. Push the epic branch
|
|
98
|
+
6. **Create a PR to `main`**
|
|
131
99
|
|
|
132
100
|
## Landing the Plane (Session Completion)
|
|
133
101
|
|
|
@@ -135,19 +103,20 @@ This can happen to ANY file touched by agents. The most vulnerable are files tou
|
|
|
135
103
|
|
|
136
104
|
**MANDATORY WORKFLOW:**
|
|
137
105
|
|
|
138
|
-
1. **Close
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
106
|
+
1. **Close tasks** - Mark all completed tasks as done:
|
|
107
|
+
```bash
|
|
108
|
+
backlog task list -s "In Progress" --plain # What's still open?
|
|
109
|
+
backlog task edit BETH-X -s "Done" --plain # Close each completed task
|
|
110
|
+
```
|
|
111
|
+
2. **Run quality gates** (if code changed) - ALL tests must pass:
|
|
142
112
|
```bash
|
|
143
113
|
npm test # Unit + integration tests
|
|
144
|
-
# If failures: create follow-up issues, DO NOT close parent issue
|
|
145
114
|
```
|
|
146
|
-
|
|
115
|
+
3. **Generate test report** (if code changed):
|
|
147
116
|
```bash
|
|
148
117
|
npm run test:gate # Runs tests + generates docs/test-reports/ report
|
|
149
118
|
```
|
|
150
|
-
|
|
119
|
+
4. **PUSH TO EPIC BRANCH** - This is MANDATORY:
|
|
151
120
|
|
|
152
121
|
```bash
|
|
153
122
|
git add -A
|
|
@@ -157,22 +126,14 @@ This can happen to ANY file touched by agents. The most vulnerable are files tou
|
|
|
157
126
|
git status # MUST show "up to date with origin"
|
|
158
127
|
```
|
|
159
128
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
owner: <repo-owner>,
|
|
165
|
-
repo: <repo-name>,
|
|
166
|
-
title: "<epic-id>: <summary of work>",
|
|
167
|
-
head: "epic/<epic-id>",
|
|
168
|
-
base: "main",
|
|
169
|
-
body: "## Summary\n<what was done>\n\n## Epic\n<epic-id>\n\n## Changes\n<list of changes>",
|
|
170
|
-
draft: false
|
|
171
|
-
)
|
|
129
|
+
5. **CREATE A PR TO `main`** - Use `gh` CLI to create a pull request:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
gh pr create --base main --head "epic/<epic-id>" --title "<epic-id>: <summary>" --body "## Summary\n<what was done>"
|
|
172
133
|
```
|
|
173
134
|
|
|
174
|
-
|
|
175
|
-
|
|
135
|
+
6. **Share the PR link** with the user
|
|
136
|
+
7. **Hand off** - Provide context for next session including the epic ID, branch, and PR URL
|
|
176
137
|
|
|
177
138
|
**CRITICAL RULES:**
|
|
178
139
|
|
package/templates/Backlog.md
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
# Backlog
|
|
2
|
-
|
|
3
|
-
> *"I don't have time to explain things twice. Read this."*
|
|
4
|
-
|
|
5
|
-
Last updated: <!-- Update this date when making changes -->
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Completed
|
|
10
|
-
|
|
11
|
-
| Task | Notes |
|
|
12
|
-
|------|-------|
|
|
13
|
-
| Initial setup | Beth agent system installed |
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## In Progress
|
|
18
|
-
|
|
19
|
-
*Nothing currently in progress.*
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Backlog (Prioritized)
|
|
24
|
-
|
|
25
|
-
### High Priority (P1)
|
|
26
|
-
|
|
27
|
-
- [ ] **Your first task** — Describe what needs to be done
|
|
28
|
-
|
|
29
|
-
### Medium Priority (P2)
|
|
30
|
-
|
|
31
|
-
- [ ] **Future work** — Things to do later
|
|
32
|
-
|
|
33
|
-
### Low Priority (P3)
|
|
34
|
-
|
|
35
|
-
- [ ] **Nice to have** — When you have time
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Decisions
|
|
40
|
-
|
|
41
|
-
| Decision | Rationale | Date |
|
|
42
|
-
|----------|-----------|------|
|
|
43
|
-
| Use Beth orchestrator | Coordinated multi-agent workflows | Today |
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Status Summary
|
|
48
|
-
|
|
49
|
-
**For Leadership:**
|
|
50
|
-
|
|
51
|
-
Project initialized with Beth agent system.
|
|
52
|
-
|
|
53
|
-
**What's Working:**
|
|
54
|
-
|
|
55
|
-
- Beth agent (orchestrator) — Ready
|
|
56
|
-
- Full agent roster — Ready
|
|
57
|
-
- All skills — Loaded
|
|
58
|
-
|
|
59
|
-
**What's Coming:**
|
|
60
|
-
|
|
61
|
-
- Your roadmap here
|
|
62
|
-
|
|
63
|
-
**Blockers:** None.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## How We Track Work
|
|
68
|
-
|
|
69
|
-
This file is the single source of truth. When you start work:
|
|
70
|
-
|
|
71
|
-
1. Move the task to **In Progress**
|
|
72
|
-
2. Do the work
|
|
73
|
-
3. Move to **Completed** when done
|
|
74
|
-
4. Commit changes
|
|
75
|
-
|
|
76
|
-
No external tools. No databases. Just this markdown file.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
*"Now you know what's happening. Questions? I'll answer them. Complaints? Keep them to yourself."*
|
|
1
|
+
# Backlog
|
|
2
|
+
|
|
3
|
+
> *"I don't have time to explain things twice. Read this."*
|
|
4
|
+
|
|
5
|
+
Last updated: <!-- Update this date when making changes -->
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Completed
|
|
10
|
+
|
|
11
|
+
| Task | Notes |
|
|
12
|
+
|------|-------|
|
|
13
|
+
| Initial setup | Beth agent system installed |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## In Progress
|
|
18
|
+
|
|
19
|
+
*Nothing currently in progress.*
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Backlog (Prioritized)
|
|
24
|
+
|
|
25
|
+
### High Priority (P1)
|
|
26
|
+
|
|
27
|
+
- [ ] **Your first task** — Describe what needs to be done
|
|
28
|
+
|
|
29
|
+
### Medium Priority (P2)
|
|
30
|
+
|
|
31
|
+
- [ ] **Future work** — Things to do later
|
|
32
|
+
|
|
33
|
+
### Low Priority (P3)
|
|
34
|
+
|
|
35
|
+
- [ ] **Nice to have** — When you have time
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Decisions
|
|
40
|
+
|
|
41
|
+
| Decision | Rationale | Date |
|
|
42
|
+
|----------|-----------|------|
|
|
43
|
+
| Use Beth orchestrator | Coordinated multi-agent workflows | Today |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Status Summary
|
|
48
|
+
|
|
49
|
+
**For Leadership:**
|
|
50
|
+
|
|
51
|
+
Project initialized with Beth agent system.
|
|
52
|
+
|
|
53
|
+
**What's Working:**
|
|
54
|
+
|
|
55
|
+
- Beth agent (orchestrator) — Ready
|
|
56
|
+
- Full agent roster — Ready
|
|
57
|
+
- All skills — Loaded
|
|
58
|
+
|
|
59
|
+
**What's Coming:**
|
|
60
|
+
|
|
61
|
+
- Your roadmap here
|
|
62
|
+
|
|
63
|
+
**Blockers:** None.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## How We Track Work
|
|
68
|
+
|
|
69
|
+
This file is the single source of truth. When you start work:
|
|
70
|
+
|
|
71
|
+
1. Move the task to **In Progress**
|
|
72
|
+
2. Do the work
|
|
73
|
+
3. Move to **Completed** when done
|
|
74
|
+
4. Commit changes
|
|
75
|
+
|
|
76
|
+
No external tools. No databases. Just this markdown file.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
*"Now you know what's happening. Questions? I'll answer them. Complaints? Keep them to yourself."*
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
[38;2;218;165;32m .╭━━━━━━━╮.[0m
|
|
2
|
-
[38;2;218;165;32m ╭──╯[0m[38;2;235;210;160m ▒▓▓▓▓▒ [0m[38;2;218;165;32m╰──╮[0m
|
|
3
|
-
[38;2;218;165;32m ╱[0m[38;2;240;220;180m ▓██████████▓ [0m[38;2;218;165;32m╲[0m
|
|
4
|
-
[38;2;218;165;32m ╱[0m[38;2;235;215;170m ████[0m[38;2;139;90;43m▓▓[0m[38;2;235;215;170m██[0m[38;2;139;90;43m▓▓[0m[38;2;235;215;170m████ [0m[38;2;218;165;32m╲[0m
|
|
5
|
-
[38;2;218;165;32m │[0m[38;2;240;225;190m ███ [0m[38;2;70;110;150m◉[0m[38;2;240;225;190m ██ [0m[38;2;70;110;150m◉[0m[38;2;240;225;190m ███ [0m[38;2;218;165;32m│[0m
|
|
6
|
-
[38;2;218;165;32m │[0m[38;2;235;210;165m ███▄▄▄▄▄▄███ [0m[38;2;218;165;32m│[0m
|
|
7
|
-
[38;2;218;165;32m │[0m[38;2;230;200;150m ▀██[0m[38;2;180;80;80m▄══▄[0m[38;2;230;200;150m██▀ [0m[38;2;218;165;32m│[0m
|
|
8
|
-
[38;2;218;165;32m │[0m[38;2;220;190;140m ╰────╯ [0m[38;2;218;165;32m│[0m
|
|
9
|
-
[38;2;218;165;32m │[0m[38;2;200;175;130m ▓██████████▓ [0m[38;2;218;165;32m│[0m
|
|
10
|
-
[38;2;218;165;32m ╲[0m[38;2;180;155;110m ████████████ [0m[38;2;218;165;32m╱[0m
|
|
11
|
-
[38;2;218;165;32m ╲[0m[38;2;160;135;90m ▀██████████▀ [0m[38;2;218;165;32m╱[0m
|
|
12
|
-
[38;2;218;165;32m ╰───╮ ╭───╯[0m
|
|
13
|
-
[38;2;218;165;32m ╰──────╯[0m
|