beth-copilot 1.1.0 → 2.1.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 +51 -1
- package/README.md +121 -132
- package/assets/beth-questioning.png +0 -0
- package/assets/yellowstone-beth.png +0 -0
- package/bin/cli.js +359 -445
- 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 +16 -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 +87 -103
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/doctor.test.js +120 -229
- 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 +114 -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 +28 -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/uninstall.test.d.ts +5 -0
- package/dist/cli/commands/uninstall.test.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.test.js +223 -0
- package/dist/cli/commands/uninstall.test.js.map +1 -0
- 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 +238 -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/templates/mcp.json.example +8 -0
- 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
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,56 @@ All notable changes to Beth are documented here. Format based on [Keep a Changel
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
## [2.1.0] - 2026-03-16
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- **`npx beth-copilot uninstall` command** — Cleanly removes all Beth-installed files from a project: `.github/agents/`, `.github/skills/`, `.github/hooks/`, `AGENTS.md`, `Backlog.md`, `.github/copilot-instructions.md`, `.vscode/settings.json`, `mcp.json.example`, and `backlog/` directory. Removes Beth guard block from pre-push hook (preserving non-Beth content). Cleans up empty `.github/` and `.vscode/` directories. 17 tests covering all removal paths.
|
|
15
|
+
- **Auto-derived backlog prefix** — `backlog init` during `beth-copilot init` now automatically derives a 6-letter prefix from the project name (e.g., `my-app` → `MYAPP`), eliminating the interactive prompt that blocked agent workflows.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **Shell command injection in backlog init** — Fixed GHAS-flagged command injection vulnerability where unsanitized project directory names were interpolated into shell commands. Now validates input against a strict allowlist pattern before use.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- **885 tests** — Up from 860 in v2.0.0. Added uninstall command tests and init prefix derivation coverage.
|
|
22
|
+
|
|
23
|
+
## [2.0.0] - 2026-03-16
|
|
24
|
+
|
|
25
|
+
### Breaking Changes
|
|
26
|
+
- **Beads removed — Backlog.md is the sole task tracker.** The entire beads/Dolt database layer has been removed. All agent instructions, hooks, and CLI commands now use `backlog` CLI exclusively. If you were using `bd` commands in scripts, they will no longer be referenced by Beth agents.
|
|
27
|
+
- **`npx beth-copilot close` command removed** (~560 lines deleted). This command enforced beads-specific close logic (blocker deps, child issues, mandatory test subtasks via `bd`). The workflow is now handled by `backlog task edit BETH-X -s "Done" --plain`.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- **Backlog.md CLI integration** — All agent instructions now reference `backlog task create`, `backlog task edit`, `backlog task list`, `backlog board`, and `backlog overview` commands. The `--plain` flag is enforced everywhere to prevent TUI mode in agent contexts.
|
|
31
|
+
- **`npx beth-copilot update` command** — Updates project files to latest templates without full re-init. Supports `--check-only` for dry-run inspection.
|
|
32
|
+
- **Behavioral skill tests** — 302 E2E skill routing tests across 3 files validating deterministic hook injection, trigger coverage, and mapping completeness.
|
|
33
|
+
- **SubagentStart/SubagentStop hook enforcement** — `inject-skills.mjs` deterministically maps agent types to required skills. `verify-skills.mjs` gates subagent completion on both skill compliance and task tracking.
|
|
34
|
+
- **Hub-and-spoke agent coordination** — Replaced 15 lateral handoffs across 6 agents with single "Escalate to Beth" handoff per agent. All agents now report to Beth.
|
|
35
|
+
- **Community skills** — Added brainstorming, framer-components, frontend-design, proof, rclone, feature-video, and other community-contributed skill modules.
|
|
36
|
+
- **27+ Azure skills** — Full Azure skill suite: compute, storage, AI, messaging, diagnostics, compliance, RBAC, cost optimization, cloud migration, resource lookup/visualizer, Entra ID, Copilot SDK, Foundry, and more.
|
|
37
|
+
- **860 tests** — Up from 438 in v1.1.0. Comprehensive coverage for CLI commands, skill routing, hook injection, pipeline integration, and path validation.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- **Agent instructions rewritten for Backlog.md** — All 7 agent files (`beth.agent.md`, `developer.agent.md`, etc.) and `AGENTS.md` updated to reference `backlog` CLI instead of `bd` commands.
|
|
41
|
+
- **Hook enforcement updated** — `verify-skills.mjs` now checks for `backlog task edit` compliance instead of `bd` commands.
|
|
42
|
+
- **Templates synced** — All template files in `templates/` now match live `.github/` configuration.
|
|
43
|
+
- **Test framework consolidated** — Migrated from mixed `node:test`/vitest to vitest-only imports across all test files.
|
|
44
|
+
|
|
45
|
+
### Removed
|
|
46
|
+
- **`beth-copilot close` command** — Entire close command and its 560-line implementation deleted.
|
|
47
|
+
- **Beads stub functions** — Removed `bd`-related stubs from `bin/cli.js`.
|
|
48
|
+
- **Dead code cleanup** — Removed 8 redundant/deprecated skills, unused `bs-buster` dependency, dead `bin/lib` files, legacy test scripts, empty barrel exports, and orphaned documentation.
|
|
49
|
+
- **Dolt/beads references** — Purged from all production source code, agent instructions, templates, and documentation.
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
- **Template drift** — Templates now stay in sync with live `.github/` config via the `update` command.
|
|
53
|
+
- **Duplicate tools in beth.agent.md** — Removed duplicate tool entries in frontmatter.
|
|
54
|
+
- **Dead pathValidation.ts exports** — Cleaned unused exports that inflated the public API surface.
|
|
55
|
+
- **Pre-push guard test isolation** — Removed unused `child_process` mock that caused CI failures.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
9
59
|
## [1.1.0] - 2026-03-10
|
|
10
60
|
|
|
11
61
|
### Added
|
|
@@ -13,7 +63,7 @@ All notable changes to Beth are documented here. Format based on [Keep a Changel
|
|
|
13
63
|
- **`npx beth-copilot close` enforcement** — 3-layer close enforcement: (1) open blocker dependencies via `bd dep list`, (2) open children via `bd children`, (3) mandatory test subtasks (unit/e2e/security) for epics. `--force` bypasses all checks.
|
|
14
64
|
- **Pre-push hook** — Git pre-push hook enforcing branch discipline: blocks pushes from `main`/`master` (exit 1), warns on non-epic branch names. Pure shell hook (no Node overhead). Auto-installed during `npx beth-copilot init`. Bypass with `BETH_SKIP_PUSH_GUARD=1`.
|
|
15
65
|
- **Quality gate infrastructure** — `npm run test:gate` generates markdown test reports to `docs/test-reports/`. `scripts/quality-gate.mjs` runs vitest + legacy tests, parses results, generates report, exits non-zero on failure.
|
|
16
|
-
- **Comprehensive CLI test suite** — 7 new test files: `close.e2e.test.ts`, `pre-push-guard.e2e.test.ts`, `quickstart-expanded.e2e.test.ts`, `cli-edge-cases.e2e.test.ts`, `framework-isolation.test.ts`, `init-logic.e2e.test.ts`, `doctor.e2e.test.ts`. 438 tests total
|
|
66
|
+
- **Comprehensive CLI test suite** — 7 new test files: `close.e2e.test.ts`, `pre-push-guard.e2e.test.ts`, `quickstart-expanded.e2e.test.ts`, `cli-edge-cases.e2e.test.ts`, `framework-isolation.test.ts`, `init-logic.e2e.test.ts`, `doctor.e2e.test.ts`. 438 tests total.
|
|
17
67
|
- **Doctor: Dolt database hygiene** — `checkDoltDatabases()` detects orphaned `*test*` databases and warns when user DB count exceeds threshold. Extracted `parseDoltDatabases()` with 18 unit tests.
|
|
18
68
|
- **Session startup drift-prevention** — Mandatory 4-step session startup checklist in AGENTS.md: check uncommitted changes, unpushed commits, spot-check closed work, sync beads state.
|
|
19
69
|
- **Beads disaster recovery docs** — `docs/BD-BACKUP-PARSER-FAILURE.md` with exact parser error, root cause, repro steps, and 3 recovery paths.
|
package/README.md
CHANGED
|
@@ -21,12 +21,12 @@ She commands seven specialized agents, each with their own expertise, tools, and
|
|
|
21
21
|
| Layer | What It Does | Status |
|
|
22
22
|
|-------|-------------|--------|
|
|
23
23
|
| **Copilot Agents** | `.agent.md` definitions running in VS Code Agent Mode | Live |
|
|
24
|
-
| **CLI Toolchain** | `beth init`, `beth doctor`, `beth
|
|
24
|
+
| **CLI Toolchain** | `beth init`, `beth doctor`, `beth land`, `beth update` — TypeScript commands | Live |
|
|
25
25
|
| **Orchestration Engine** | Fan-out routing, tool calling loop, subagent spawning, handoffs | Live |
|
|
26
|
-
| **
|
|
26
|
+
| **Agent Tools** | Copilot built-ins (codebase, readFile, editFiles, runSubagent) + optional MCP servers | Live |
|
|
27
27
|
| **LLM Provider** | Azure OpenAI with Entra ID auth, streaming, retry, tool calling | Live |
|
|
28
28
|
|
|
29
|
-
**
|
|
29
|
+
**860 tests.** All passing.
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
@@ -55,11 +55,11 @@ flowchart LR
|
|
|
55
55
|
| **LLM Provider** | Azure OpenAI via `openai` SDK | Entra ID auth (no API keys), streaming + tool calling |
|
|
56
56
|
| **Auth** | `@azure/identity` DefaultAzureCredential | az login, managed identity, VS Code creds |
|
|
57
57
|
| **Frontmatter** | `gray-matter` | Parses `.agent.md` and `SKILL.md` YAML |
|
|
58
|
-
| **Testing** |
|
|
59
|
-
| **Task Tracking** |
|
|
60
|
-
| **Package Manager** |
|
|
58
|
+
| **Testing** | vitest | 860 tests — unit, integration, E2E |
|
|
59
|
+
| **Task Tracking** | Backlog.md (`backlog` CLI) | Markdown-based task tracking for agents and humans |
|
|
60
|
+
| **Package Manager** | npm | Lockfile committed |
|
|
61
61
|
|
|
62
|
-
**Production dependencies:** 1 (`gray-matter`).
|
|
62
|
+
**Production dependencies:** 1 (`gray-matter`). Minimal attack surface by design.
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
@@ -80,8 +80,8 @@ Then open VS Code, switch Copilot Chat to **Agent mode**, and type `@Beth`.
|
|
|
80
80
|
|
|
81
81
|
**Verify everything works:**
|
|
82
82
|
```bash
|
|
83
|
-
beth doctor # Health check: Node.js,
|
|
84
|
-
beth quickstart # Init + doctor
|
|
83
|
+
beth doctor # Health check: Node.js, agents, skills
|
|
84
|
+
beth quickstart # Init + doctor in one shot
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
For detailed setup (prerequisites, task tracking, MCP servers): [docs/INSTALLATION.md](docs/INSTALLATION.md)
|
|
@@ -92,19 +92,21 @@ For detailed setup (prerequisites, task tracking, MCP servers): [docs/INSTALLATI
|
|
|
92
92
|
|
|
93
93
|
| Command | What It Does |
|
|
94
94
|
|---------|-------------|
|
|
95
|
-
| `beth init` | Install agents, skills, VS Code settings,
|
|
95
|
+
| `beth init` | Install agents, skills, VS Code settings, Backlog.md tracking, pre-push hook |
|
|
96
96
|
| `beth init --force` | Overwrite existing files |
|
|
97
|
-
| `beth doctor` | Validate Node.js ≥18,
|
|
98
|
-
| `beth quickstart` | Run init + doctor
|
|
97
|
+
| `beth doctor` | Validate Node.js ≥18, agents frontmatter, skills |
|
|
98
|
+
| `beth quickstart` | Run init + doctor in one shot |
|
|
99
|
+
| `beth land` | Automate session completion: tests, commit, push, verify sync |
|
|
100
|
+
| `beth update` | Update project files to latest templates without full re-init |
|
|
99
101
|
| `beth help` | Show all commands and options |
|
|
100
102
|
|
|
101
|
-
**Flags:** `--force`, `--skip-backlog`, `--skip-mcp`, `--skip-
|
|
103
|
+
**Flags:** `--force`, `--skip-backlog`, `--skip-mcp`, `--verbose`, `--skip-tests`, `--message/-m`, `--dry-run`, `--check-only`
|
|
102
104
|
|
|
103
105
|
---
|
|
104
106
|
|
|
105
107
|
## Agent Orchestration
|
|
106
108
|
|
|
107
|
-
Beth doesn't micromanage. She delegates to specialists over **subagent** and **handoff** channels, tracks
|
|
109
|
+
Beth doesn't micromanage. She delegates to specialists over **subagent** and **handoff** channels, tracks work in Backlog.md, and holds every agent accountable.
|
|
108
110
|
|
|
109
111
|
### The Family
|
|
110
112
|
|
|
@@ -118,17 +120,23 @@ Beth doesn't micromanage. She delegates to specialists over **subagent** and **h
|
|
|
118
120
|
| **@tester** | The Enforcer | Quality assurance, accessibility, performance |
|
|
119
121
|
| **@security-reviewer** | The Bodyguard | OWASP, compliance, threat modeling |
|
|
120
122
|
|
|
121
|
-
### Delegation Model
|
|
123
|
+
### Delegation Model (Hub-and-Spoke)
|
|
122
124
|
|
|
123
125
|
```mermaid
|
|
124
126
|
flowchart LR
|
|
125
127
|
Beth["@Beth"] -->|subagent| PM["PM"] & UX["UX"] & Dev["Dev"] & Sec["Sec"] & Test["Test"] & Res["Research"]
|
|
126
|
-
PM -.->|
|
|
127
|
-
|
|
128
|
+
PM -.->|escalate| Beth
|
|
129
|
+
UX -.->|escalate| Beth
|
|
130
|
+
Dev -.->|escalate| Beth
|
|
131
|
+
Sec -.->|escalate| Beth
|
|
132
|
+
Test -.->|escalate| Beth
|
|
133
|
+
Res -.->|escalate| Beth
|
|
128
134
|
|
|
129
135
|
style Beth fill:#1e3a5f,color:#fff
|
|
130
136
|
```
|
|
131
137
|
|
|
138
|
+
All agents escalate exclusively to Beth — no lateral handoffs. Beth routes, agents execute.
|
|
139
|
+
|
|
132
140
|
### Subagent vs Handoff
|
|
133
141
|
|
|
134
142
|
| Mechanism | Control | Use When |
|
|
@@ -216,24 +224,37 @@ Full details: [docs/MCP-SETUP.md](docs/MCP-SETUP.md)
|
|
|
216
224
|
|
|
217
225
|
## Skills (On-Demand Knowledge)
|
|
218
226
|
|
|
219
|
-
Skills are domain-knowledge modules that agents load automatically when trigger phrases match. Each skill lives in `.github/skills/<name>/SKILL.md`.
|
|
227
|
+
Skills are domain-knowledge modules that agents load automatically when trigger phrases match. Each skill lives in `.github/skills/<name>/SKILL.md` or `.github/prompts/<name>/PROMPT.md`.
|
|
220
228
|
|
|
221
229
|
| Skill | Triggers On | Used By |
|
|
222
230
|
|-------|------------|---------|
|
|
223
231
|
| **PRD Generation** | "create a prd", "product requirements" | Product Manager |
|
|
224
|
-
| **
|
|
232
|
+
| **UI UX Pro Max** | "design system", "color palette", "style guide" | UX Designer, Developer |
|
|
233
|
+
| **Web Design Guidelines** | "review my UI", "check accessibility" | UX Designer, Tester |
|
|
234
|
+
| **Framer Components** | "framer component", "property controls" | UX Designer, Developer |
|
|
225
235
|
| **React/Next.js Best Practices** | React performance, Next.js patterns | Developer |
|
|
226
|
-
| **Web Design Guidelines** | "review my UI", "check accessibility" | UX Designer |
|
|
227
236
|
| **shadcn/ui** | "shadcn", "ui component" | Developer |
|
|
228
237
|
| **Security Analysis** | "security review", "OWASP", "threat model" | Security Reviewer |
|
|
229
|
-
| **Azure Operations** | Azure resource management | Developer |
|
|
238
|
+
| **Azure Operations** | Azure resource management (27+ Azure skills) | Developer |
|
|
230
239
|
| **Web Search** | Internet research via Brave | Researcher |
|
|
231
240
|
|
|
241
|
+
### Design & UI Skills
|
|
242
|
+
|
|
243
|
+
Three complementary skills cover the full design-to-code pipeline. They don't overlap — each solves a different problem.
|
|
244
|
+
|
|
245
|
+
| Skill | What It Does | When You Need It |
|
|
246
|
+
|-------|-------------|------------------|
|
|
247
|
+
| **[UI UX Pro Max](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill)** | Design system generator — picks styles, colors, typography, and layout patterns from a searchable database of 67 styles, 161 color palettes, 57 font pairings, and 161 industry-specific reasoning rules. | Starting a new project or page. "What should this look like?" |
|
|
248
|
+
| **Web Design Guidelines** | Code auditor — fetches live [Vercel Web Interface Guidelines](https://github.com/vercel-labs/web-interface-guidelines) and checks your actual files for accessibility, focus, form, and performance violations with `file:line` output. | Reviewing implemented code. "Is this built correctly?" |
|
|
249
|
+
| **Framer Components** | Framer platform SDK reference — `addPropertyControls`, `ControlType`, code overrides, `RenderTarget`, auto-sizing, and Framer Motion integration. | Building custom components inside Framer. "How do I make this work in Framer?" |
|
|
250
|
+
|
|
251
|
+
**Typical flow:** UI UX Pro Max generates the design system → Developer builds it → Web Design Guidelines audits the result. Framer Components is loaded only when targeting the Framer platform.
|
|
252
|
+
|
|
232
253
|
---
|
|
233
254
|
|
|
234
255
|
## How It Works
|
|
235
256
|
|
|
236
|
-
Beth runs inside VS Code Copilot Agent Mode. The `@Beth` agent parses requests, delegates to specialist agents via subagent spawning, and tracks work through
|
|
257
|
+
Beth runs inside VS Code Copilot Agent Mode. The `@Beth` agent parses requests, delegates to specialist agents via subagent spawning, and tracks work through Backlog.md.
|
|
237
258
|
|
|
238
259
|
```mermaid
|
|
239
260
|
flowchart LR
|
|
@@ -249,12 +270,12 @@ flowchart LR
|
|
|
249
270
|
**Key capabilities:**
|
|
250
271
|
- **Agent routing** — `@mention` parsing, subagent spawning, handoff chains
|
|
251
272
|
- **Skill injection** — Domain knowledge loaded on trigger phrases
|
|
252
|
-
- **Task tracking** —
|
|
273
|
+
- **Task tracking** — Backlog.md (`backlog`) for tasks, milestones, and progress
|
|
253
274
|
- **MCP integration** — Optional external tool servers (shadcn, Playwright, Azure)
|
|
254
275
|
|
|
255
276
|
```
|
|
256
277
|
@Beth implement the login page
|
|
257
|
-
→ Beth routes to @developer, tracks work in
|
|
278
|
+
→ Beth routes to @developer, tracks work in Backlog.md
|
|
258
279
|
|
|
259
280
|
@Beth review this PR for security vulnerabilities
|
|
260
281
|
→ Beth routes to @security-reviewer, injects security-analysis skill
|
|
@@ -267,19 +288,21 @@ flowchart LR
|
|
|
267
288
|
|
|
268
289
|
---
|
|
269
290
|
|
|
270
|
-
##
|
|
291
|
+
## Agent Tools
|
|
271
292
|
|
|
272
|
-
|
|
293
|
+
Beth's agents leverage VS Code Copilot's built-in tools alongside task tracking through the `backlog` CLI. The orchestration layer delegates to these capabilities:
|
|
273
294
|
|
|
274
|
-
| Tool | What It Does |
|
|
275
|
-
|
|
276
|
-
| **
|
|
277
|
-
| **
|
|
278
|
-
| **
|
|
279
|
-
| **
|
|
280
|
-
| **
|
|
281
|
-
| **
|
|
282
|
-
| **MCP
|
|
295
|
+
| Tool | What It Does |
|
|
296
|
+
|------|-------------|
|
|
297
|
+
| **codebase** | Semantic code search across the workspace |
|
|
298
|
+
| **readFile** | Read file contents with line ranges |
|
|
299
|
+
| **editFiles** | Atomic file modifications |
|
|
300
|
+
| **runInTerminal** | Shell command execution |
|
|
301
|
+
| **runSubagent** | Spawn specialist agents autonomously |
|
|
302
|
+
| **backlog CLI** | `backlog task create`, `backlog board`, `backlog task edit` for tracking |
|
|
303
|
+
| **MCP servers** | Optional external tools (shadcn, Playwright, Azure, Brave Search) |
|
|
304
|
+
|
|
305
|
+
### Public API
|
|
283
306
|
|
|
284
307
|
```typescript
|
|
285
308
|
import { loadAgents, loadSkills, getInferableAgents, buildTriggerMap } from 'beth-copilot';
|
|
@@ -309,112 +332,105 @@ flowchart LR
|
|
|
309
332
|
CLI["beth"] --> Init["init"]
|
|
310
333
|
CLI --> Doctor["doctor"]
|
|
311
334
|
CLI --> QS["quickstart"]
|
|
335
|
+
CLI --> Land["land"]
|
|
336
|
+
CLI --> Update["update"]
|
|
312
337
|
Init --> Templates[".agent.md · SKILL.md · settings"]
|
|
313
|
-
Doctor --> Checks["Node ≥18 ·
|
|
338
|
+
Doctor --> Checks["Node ≥18 · agents · skills"]
|
|
314
339
|
QS --> Init & Doctor
|
|
340
|
+
Update --> Diff["Template diffing"]
|
|
315
341
|
```
|
|
316
342
|
|
|
317
343
|
**Commands:**
|
|
318
|
-
- `beth init` — Scaffold agents, skills, VS Code settings,
|
|
319
|
-
- `beth doctor` — Validate Node.js,
|
|
320
|
-
- `beth quickstart` — Run init + doctor
|
|
344
|
+
- `beth init` — Scaffold agents, skills, VS Code settings, Backlog.md tracking
|
|
345
|
+
- `beth doctor` — Validate Node.js, agent frontmatter, skill directories
|
|
346
|
+
- `beth quickstart` — Run init + doctor in one shot
|
|
347
|
+
- `beth land` — Automated session completion: tests, commit, push, verify sync
|
|
348
|
+
- `beth update` — Update project files to latest templates (supports `--check-only`)
|
|
321
349
|
|
|
322
350
|
---
|
|
323
351
|
|
|
324
352
|
## TypeScript Core
|
|
325
353
|
|
|
326
|
-
The engine that powers
|
|
354
|
+
The engine that powers Beth. Parses agent and skill definitions, provides typed APIs for the agentic loop, and drives the CLI toolchain.
|
|
327
355
|
|
|
328
356
|
### Project Structure
|
|
329
357
|
|
|
330
358
|
```
|
|
331
359
|
beth/
|
|
332
360
|
├── bin/
|
|
333
|
-
│ └── cli.js # CLI entry point (init, doctor, quickstart, help)
|
|
361
|
+
│ └── cli.js # CLI entry point (init, doctor, quickstart, land, update, help)
|
|
334
362
|
├── src/
|
|
335
363
|
│ ├── index.ts # Barrel exports (all public API)
|
|
336
364
|
│ ├── cli/commands/
|
|
337
365
|
│ │ ├── doctor.ts # System health validation
|
|
338
|
-
│ │
|
|
366
|
+
│ │ ├── land.ts # Automated session completion
|
|
367
|
+
│ │ ├── pre-push-guard.ts # Branch discipline enforcement
|
|
368
|
+
│ │ ├── quickstart.ts # Guided setup flow
|
|
369
|
+
│ │ └── update.ts # Template update diffing
|
|
339
370
|
│ ├── core/
|
|
340
|
-
│ │ ├── orchestrator.ts # Agentic loop: route → LLM → tools → response
|
|
341
|
-
│ │ ├── router.ts # @mention routing, skill matching, agent lookup
|
|
342
|
-
│ │ ├── context.ts # Conversation state, token truncation, skill injection
|
|
343
|
-
│ │ ├── handoffs.ts # Agent handoff transfers, loop detection
|
|
344
371
|
│ │ ├── agents/
|
|
345
372
|
│ │ │ ├── types.ts # AgentDefinition, AgentFrontmatter, AgentHandoff
|
|
346
373
|
│ │ │ └── loader.ts # Parse .agent.md → typed definitions
|
|
347
374
|
│ │ └── skills/
|
|
348
375
|
│ │ ├── types.ts # SkillDefinition, TriggerMap
|
|
349
376
|
│ │ └── loader.ts # Parse SKILL.md, extract triggers, match queries
|
|
350
|
-
│
|
|
351
|
-
│
|
|
352
|
-
│ ├── tools/
|
|
353
|
-
│ │ ├── interface.ts # Tool interface + toToolDefinition()
|
|
354
|
-
│ │ ├── types.ts # ToolError, ToolResult, ToolContext, ToolPermissions
|
|
355
|
-
│ │ ├── registry.ts # ToolRegistry: register, get, list, getDefinitions
|
|
356
|
-
│ │ ├── cli/
|
|
357
|
-
│ │ │ ├── readFile.ts # File reading with line ranges
|
|
358
|
-
│ │ │ ├── editFile.ts # Atomic string replacement
|
|
359
|
-
│ │ │ ├── search.ts # Ripgrep with Node.js fallback
|
|
360
|
-
│ │ │ ├── terminal.ts # Secure command execution
|
|
361
|
-
│ │ │ ├── beads.ts # Issue tracking via bd CLI
|
|
362
|
-
│ │ │ └── subagent.ts # Agent spawning interface
|
|
363
|
-
│ │ └── mcp/
|
|
364
|
-
│ │ ├── client.ts # JSON-RPC 2.0 over stdio
|
|
365
|
-
│ │ └── bridge.ts # JSONC config, tool namespacing
|
|
366
|
-
│ └── providers/
|
|
367
|
-
│ ├── interface.ts # LLMProviderBase abstract class
|
|
368
|
-
│ ├── azure.ts # AzureOpenAIProvider (Entra ID, streaming, tools)
|
|
369
|
-
│ ├── types.ts # 17 types: ChatMessage, ToolCall, LLMError, etc.
|
|
370
|
-
│ ├── retry.ts # Exponential backoff with jitter
|
|
371
|
-
│ ├── config.ts # Environment + dotfile config loader
|
|
372
|
-
│ └── streaming.ts # StreamAccumulator, collectStream, mapStream
|
|
377
|
+
│ └── lib/
|
|
378
|
+
│ └── pathValidation.ts # Traversal/injection guards
|
|
373
379
|
├── templates/
|
|
374
380
|
│ └── .github/
|
|
375
381
|
│ ├── agents/ # 7 agent definitions (.agent.md)
|
|
376
|
-
│ └── skills/ #
|
|
382
|
+
│ └── skills/ # 6 core skill modules (SKILL.md)
|
|
377
383
|
└── docs/
|
|
378
384
|
├── INSTALLATION.md
|
|
379
385
|
├── MCP-SETUP.md
|
|
380
386
|
├── CLI-ARCHITECTURE.md
|
|
381
|
-
|
|
387
|
+
├── SYSTEM-FLOW.md
|
|
388
|
+
├── HOOKS-AND-HANDOFF-ENFORCEMENT.md
|
|
389
|
+
├── E2E-SKILL-TESTS.md
|
|
390
|
+
├── PR-REVIEW-PROCESS.md
|
|
391
|
+
└── SWARM-ARCHITECTURE.md
|
|
382
392
|
```
|
|
383
393
|
|
|
384
394
|
### Test Coverage
|
|
385
395
|
|
|
386
|
-
**
|
|
396
|
+
**860 tests** (860 pass, 0 fail):
|
|
387
397
|
|
|
388
398
|
| Suite | Tests | What It Covers |
|
|
389
399
|
|-------|-------|---------------|
|
|
390
|
-
| **
|
|
391
|
-
|
|
|
392
|
-
|
|
|
393
|
-
|
|
|
394
|
-
|
|
|
395
|
-
|
|
|
396
|
-
|
|
|
397
|
-
|
|
|
398
|
-
|
|
|
399
|
-
|
|
|
400
|
-
|
|
|
401
|
-
|
|
|
402
|
-
|
|
|
403
|
-
|
|
|
404
|
-
|
|
|
405
|
-
|
|
|
406
|
-
|
|
|
407
|
-
|
|
|
408
|
-
|
|
|
409
|
-
|
|
|
410
|
-
|
|
|
411
|
-
|
|
|
412
|
-
|
|
|
413
|
-
|
|
|
414
|
-
|
|
|
415
|
-
|
|
|
416
|
-
|
|
|
417
|
-
|
|
|
400
|
+
| **Skill Routing** | | |
|
|
401
|
+
| Hook injection | 51 | Deterministic skill injection via SubagentStart hook |
|
|
402
|
+
| Skill routing | 223 | Agent → skill mapping, trigger phrase matching |
|
|
403
|
+
| Trigger coverage | 147 | All trigger phrases resolve to correct skills |
|
|
404
|
+
| Disambiguation | 28 | Overlapping trigger phrase resolution |
|
|
405
|
+
| Mapping completeness | 12 | Every agent has required skills mapped |
|
|
406
|
+
| Pipeline integration | 41 | End-to-end skill loading through full pipeline |
|
|
407
|
+
| Inject-skills hook | 20 | `inject-skills.mjs` unit tests |
|
|
408
|
+
| Verify-skills hook | 9 | `verify-skills.mjs` compliance gate |
|
|
409
|
+
| Smoke tests | 7 | Package exports, barrel imports |
|
|
410
|
+
| **Core** | | |
|
|
411
|
+
| Agent loader | 13 | `.agent.md` parsing, validation, code fence stripping |
|
|
412
|
+
| Agent frontmatter | 32 | YAML frontmatter extraction, required fields |
|
|
413
|
+
| Agent handoffs | 18 | Handoff chain validation, escalation patterns |
|
|
414
|
+
| Agent tools | 25 | Tool declarations, permission schemas |
|
|
415
|
+
| Agent types | 13 | Type definitions, discriminated unions |
|
|
416
|
+
| Agent suite | 18 | Integration: load all 7 agents, validate consistency |
|
|
417
|
+
| Skill loader | 20 | SKILL.md parsing, trigger extraction, query matching |
|
|
418
|
+
| Path validation | 26 | Traversal detection, injection prevention, allowlists |
|
|
419
|
+
| **CLI** | | |
|
|
420
|
+
| Init | 24 | File scaffolding, template copying, idempotency |
|
|
421
|
+
| Doctor | 15 | Node.js version, agent validation, skill checks |
|
|
422
|
+
| Land | 62 | Test → commit → push pipeline, branch discipline |
|
|
423
|
+
| Pre-push guard | 46 | Branch protection, main/master blocking |
|
|
424
|
+
| Quickstart | 10 | Init + Doctor combined flow |
|
|
425
|
+
| **CLI E2E** | | |
|
|
426
|
+
| Init logic | 20 | End-to-end init with real filesystem |
|
|
427
|
+
| Doctor | 21 | Health checks against real project structure |
|
|
428
|
+
| Pipeline | 14 | Init → Doctor pipeline validation |
|
|
429
|
+
| Help | 24 | Help output format, command listing |
|
|
430
|
+
| MCP | 13 | MCP template validation and copying |
|
|
431
|
+
| Edge cases | 13 | Flag combinations, error scenarios |
|
|
432
|
+
| Pre-push guard | 11 | Git hook integration with temp repos |
|
|
433
|
+
| Quickstart expanded | 11 | Full quickstart flow E2E |
|
|
418
434
|
|
|
419
435
|
---
|
|
420
436
|
|
|
@@ -500,37 +516,6 @@ Is it magic? No. It's just competence with very good hair.
|
|
|
500
516
|
- **Node.js** ≥ 18
|
|
501
517
|
- **VS Code** with GitHub Copilot extension
|
|
502
518
|
- **GitHub Copilot Chat** in Agent mode
|
|
503
|
-
- [**beads**](https://github.com/steveyegge/beads) for task tracking (`bd` CLI)
|
|
504
|
-
|
|
505
|
-
### Installing Beads
|
|
506
|
-
|
|
507
|
-
```bash
|
|
508
|
-
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
**CGO Troubleshooting (Linux/WSL):** Beads uses Dolt (a Git-for-data database) which requires CGO. If `bd init` or `bd doctor` fails with CGO-related errors:
|
|
512
|
-
|
|
513
|
-
```bash
|
|
514
|
-
# Install C compiler toolchain (required for CGO)
|
|
515
|
-
sudo apt-get update && sudo apt-get install -y build-essential gcc
|
|
516
|
-
|
|
517
|
-
# Verify CGO is available
|
|
518
|
-
export CGO_ENABLED=1
|
|
519
|
-
go env CGO_ENABLED # should print 1
|
|
520
|
-
|
|
521
|
-
# Re-install beads
|
|
522
|
-
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
|
|
523
|
-
```
|
|
524
|
-
|
|
525
|
-
**Common beads issues:**
|
|
526
|
-
- `bd: command not found` — Add `~/.local/bin` to your PATH: `export PATH="$HOME/.local/bin:$PATH"`
|
|
527
|
-
- `bd doctor` warnings about metadata — Run `bd doctor --fix` to auto-repair
|
|
528
|
-
- Dolt migration errors — Delete `.beads/` and re-initialize with `bd init`
|
|
529
|
-
|
|
530
|
-
```bash
|
|
531
|
-
# Verify beads is working
|
|
532
|
-
bd doctor
|
|
533
|
-
```
|
|
534
519
|
|
|
535
520
|
### Optional: MCP Servers
|
|
536
521
|
|
|
@@ -542,10 +527,14 @@ See [MCP Integrations](#mcp-integrations) above or [docs/MCP-SETUP.md](docs/MCP-
|
|
|
542
527
|
|
|
543
528
|
| Doc | Purpose |
|
|
544
529
|
|-----|---------|
|
|
545
|
-
| [Installation Guide](docs/INSTALLATION.md) | Full setup: prerequisites, VS Code config,
|
|
530
|
+
| [Installation Guide](docs/INSTALLATION.md) | Full setup: prerequisites, VS Code config, Backlog.md |
|
|
546
531
|
| [MCP Setup](docs/MCP-SETUP.md) | Optional server integrations |
|
|
547
532
|
| [CLI Architecture](docs/CLI-ARCHITECTURE.md) | Dual-interface design, implementation phases |
|
|
548
533
|
| [System Flow](docs/SYSTEM-FLOW.md) | Agent orchestration diagrams |
|
|
534
|
+
| [Hooks & Handoffs](docs/HOOKS-AND-HANDOFF-ENFORCEMENT.md) | Skill injection hooks, hub-and-spoke enforcement |
|
|
535
|
+
| [E2E Skill Tests](docs/E2E-SKILL-TESTS.md) | Behavioral skill routing test plan |
|
|
536
|
+
| [PR Review Process](docs/PR-REVIEW-PROCESS.md) | Code review checklist and workflow |
|
|
537
|
+
| [Swarm Architecture](docs/SWARM-ARCHITECTURE.md) | Multi-agent swarm design (planned) |
|
|
549
538
|
| [Contributing Guide](CONTRIBUTING.md) | How to contribute (PR process, review checklist) |
|
|
550
539
|
| [Changelog](CHANGELOG.md) | Version history |
|
|
551
540
|
| [Security Policy](SECURITY.md) | Vulnerability reporting |
|
|
File without changes
|
|
File without changes
|