@codemcp/ade 0.2.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/.ade/skills/adr-nygard/SKILL.md +45 -0
- package/.ade/skills/conventional-commits/SKILL.md +36 -0
- package/.ade/skills/tanstack-architecture/SKILL.md +25 -0
- package/.ade/skills/tanstack-code/SKILL.md +25 -0
- package/.ade/skills/tanstack-design/SKILL.md +24 -0
- package/.ade/skills/tanstack-testing/SKILL.md +24 -0
- package/.agentskills/skills/adr-nygard/SKILL.md +45 -0
- package/.agentskills/skills/commit/SKILL.md +20 -0
- package/.agentskills/skills/tdd/SKILL.md +10 -0
- package/.beads/README.md +85 -0
- package/.beads/config.yaml +63 -0
- package/.beads/interactions.jsonl +0 -0
- package/.beads/issues.jsonl +46 -0
- package/.beads/last-touched +1 -0
- package/.beads/metadata.json +4 -0
- package/.claude/settings.json +16 -0
- package/.claude/skills/extending-catalog/SKILL.md +41 -0
- package/.cursor/mcp.json +16 -0
- package/.cursor/rules/ade.mdc +10 -0
- package/.github/agents/ade.agent.md +28 -0
- package/.github/copilot-instructions.md +11 -0
- package/.github/workflows/pr.yml +38 -0
- package/.github/workflows/release.yml +124 -0
- package/.husky/post-checkout +2 -0
- package/.husky/post-merge +2 -0
- package/.husky/pre-commit +2 -0
- package/.husky/pre-push +8 -0
- package/.kiro/agents/ade.json +20 -0
- package/.kiro/settings/mcp.json +14 -0
- package/.knowledge/.prettierignore +1 -0
- package/.knowledge/config.yaml +9 -0
- package/.lintstagedrc.js +4 -0
- package/.mcp.json +20 -0
- package/.opencode/agents/ade.md +118 -0
- package/.prettierignore +2 -0
- package/.prettierrc.yaml +3 -0
- package/.vibe/beads-state-ade-autonomy-facet-46zodk.json +29 -0
- package/.vibe/beads-state-ade-fix-no-arch-selected-hvfiio.json +34 -0
- package/.vibe/development-plan-autonomy-facet.md +214 -0
- package/.vibe/development-plan-fix-no-arch-selected.md +103 -0
- package/.vscode/mcp.json +24 -0
- package/LICENSE +21 -0
- package/README.md +293 -0
- package/config.lock.yaml +118 -0
- package/config.yaml +10 -0
- package/docs/CLI-PRD.md +251 -0
- package/docs/CLI-design.md +646 -0
- package/docs/adrs/0001-tui-framework-selection.md +77 -0
- package/eslint.config.mjs +38 -0
- package/opencode.json +17 -0
- package/package.json +79 -0
- package/packages/cli/.prettierignore +1 -0
- package/packages/cli/dist/commands/install.js +39 -0
- package/packages/cli/dist/commands/setup.js +177 -0
- package/packages/cli/dist/index.js +43 -0
- package/packages/cli/dist/knowledge-installer.js +38 -0
- package/packages/cli/dist/version.js +1 -0
- package/packages/cli/eslint.config.mjs +40 -0
- package/packages/cli/nodemon.json +7 -0
- package/packages/cli/package.json +40 -0
- package/packages/cli/src/commands/conventions.integration.spec.ts +267 -0
- package/packages/cli/src/commands/install.integration.spec.ts +123 -0
- package/packages/cli/src/commands/install.spec.ts +169 -0
- package/packages/cli/src/commands/install.ts +63 -0
- package/packages/cli/src/commands/knowledge.integration.spec.ts +129 -0
- package/packages/cli/src/commands/setup.integration.spec.ts +148 -0
- package/packages/cli/src/commands/setup.spec.ts +442 -0
- package/packages/cli/src/commands/setup.ts +252 -0
- package/packages/cli/src/index.ts +52 -0
- package/packages/cli/src/knowledge-installer.spec.ts +111 -0
- package/packages/cli/src/knowledge-installer.ts +54 -0
- package/packages/cli/src/version.ts +1 -0
- package/packages/cli/tsconfig.build.json +8 -0
- package/packages/cli/tsconfig.json +10 -0
- package/packages/cli/tsconfig.vitest.json +7 -0
- package/packages/cli/vitest.config.ts +5 -0
- package/packages/core/.prettierignore +1 -0
- package/packages/core/eslint.config.mjs +40 -0
- package/packages/core/nodemon.json +7 -0
- package/packages/core/package.json +34 -0
- package/packages/core/src/catalog/catalog.spec.ts +570 -0
- package/packages/core/src/catalog/facets/architecture.ts +438 -0
- package/packages/core/src/catalog/facets/autonomy.ts +106 -0
- package/packages/core/src/catalog/facets/backpressure.ts +143 -0
- package/packages/core/src/catalog/facets/practices.ts +173 -0
- package/packages/core/src/catalog/facets/process.ts +50 -0
- package/packages/core/src/catalog/index.ts +93 -0
- package/packages/core/src/config.spec.ts +165 -0
- package/packages/core/src/config.ts +39 -0
- package/packages/core/src/index.ts +55 -0
- package/packages/core/src/registry.spec.ts +145 -0
- package/packages/core/src/registry.ts +70 -0
- package/packages/core/src/resolver.spec.ts +626 -0
- package/packages/core/src/resolver.ts +214 -0
- package/packages/core/src/types.ts +179 -0
- package/packages/core/src/writers/git-hooks.ts +9 -0
- package/packages/core/src/writers/instruction.spec.ts +42 -0
- package/packages/core/src/writers/instruction.ts +8 -0
- package/packages/core/src/writers/knowledge.spec.ts +26 -0
- package/packages/core/src/writers/knowledge.ts +15 -0
- package/packages/core/src/writers/permission-policy.ts +8 -0
- package/packages/core/src/writers/setup-note.ts +9 -0
- package/packages/core/src/writers/skills.spec.ts +109 -0
- package/packages/core/src/writers/skills.ts +9 -0
- package/packages/core/src/writers/workflows.spec.ts +72 -0
- package/packages/core/src/writers/workflows.ts +26 -0
- package/packages/core/tsconfig.build.json +8 -0
- package/packages/core/tsconfig.json +7 -0
- package/packages/core/tsconfig.vitest.json +7 -0
- package/packages/core/vitest.config.ts +5 -0
- package/packages/harnesses/.prettierignore +1 -0
- package/packages/harnesses/eslint.config.mjs +40 -0
- package/packages/harnesses/package.json +35 -0
- package/packages/harnesses/src/index.spec.ts +45 -0
- package/packages/harnesses/src/index.ts +47 -0
- package/packages/harnesses/src/permission-policy.ts +173 -0
- package/packages/harnesses/src/skills-installer.ts +54 -0
- package/packages/harnesses/src/types.ts +12 -0
- package/packages/harnesses/src/util.ts +221 -0
- package/packages/harnesses/src/writers/claude-code.spec.ts +320 -0
- package/packages/harnesses/src/writers/claude-code.ts +107 -0
- package/packages/harnesses/src/writers/cline.spec.ts +212 -0
- package/packages/harnesses/src/writers/cline.ts +24 -0
- package/packages/harnesses/src/writers/copilot.spec.ts +258 -0
- package/packages/harnesses/src/writers/copilot.ts +105 -0
- package/packages/harnesses/src/writers/cursor.spec.ts +219 -0
- package/packages/harnesses/src/writers/cursor.ts +95 -0
- package/packages/harnesses/src/writers/kiro.spec.ts +228 -0
- package/packages/harnesses/src/writers/kiro.ts +89 -0
- package/packages/harnesses/src/writers/opencode.spec.ts +258 -0
- package/packages/harnesses/src/writers/opencode.ts +67 -0
- package/packages/harnesses/src/writers/roo-code.spec.ts +197 -0
- package/packages/harnesses/src/writers/roo-code.ts +71 -0
- package/packages/harnesses/src/writers/universal.spec.ts +134 -0
- package/packages/harnesses/src/writers/universal.ts +84 -0
- package/packages/harnesses/src/writers/windsurf.spec.ts +178 -0
- package/packages/harnesses/src/writers/windsurf.ts +89 -0
- package/packages/harnesses/tsconfig.build.json +8 -0
- package/packages/harnesses/tsconfig.json +7 -0
- package/packages/harnesses/tsconfig.vitest.json +7 -0
- package/packages/harnesses/vitest.config.ts +5 -0
- package/pnpm-workspace.yaml +2 -0
- package/scripts/rename-packages.sh +23 -0
- package/skills-lock.json +20 -0
- package/tsconfig.base.json +25 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +13 -0
- package/turbo.json +47 -0
- package/vitest.config.ts +22 -0
- package/vitest.setup.ts +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adr-nygard
|
|
3
|
+
description: Architecture Decision Records following Nygard's lightweight template
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Architecture Decision Records (Nygard)
|
|
7
|
+
|
|
8
|
+
## When to Write an ADR
|
|
9
|
+
|
|
10
|
+
- When making a significant architectural decision
|
|
11
|
+
- When choosing between multiple viable options
|
|
12
|
+
- When the decision will be hard to reverse
|
|
13
|
+
- When future developers will ask "why did we do this?"
|
|
14
|
+
|
|
15
|
+
## Template
|
|
16
|
+
|
|
17
|
+
Store ADRs in `docs/adr/` as numbered markdown files: `NNNN-title-with-dashes.md`
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
# N. Title
|
|
21
|
+
|
|
22
|
+
## Status
|
|
23
|
+
|
|
24
|
+
Proposed | Accepted | Deprecated | Superseded by [ADR-NNNN]
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
|
|
28
|
+
What is the issue that we're seeing that is motivating this decision or change?
|
|
29
|
+
|
|
30
|
+
## Decision
|
|
31
|
+
|
|
32
|
+
What is the change that we're proposing and/or doing?
|
|
33
|
+
|
|
34
|
+
## Consequences
|
|
35
|
+
|
|
36
|
+
What becomes easier or more difficult to do because of this change?
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Rules
|
|
40
|
+
|
|
41
|
+
- ADRs are immutable once accepted — supersede, don't edit
|
|
42
|
+
- Keep context focused on forces at play at the time of the decision
|
|
43
|
+
- Write consequences as both positive and negative impacts
|
|
44
|
+
- Number sequentially, never reuse numbers
|
|
45
|
+
- Title should be a short noun phrase (e.g. "Use PostgreSQL for persistence")
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conventional-commits
|
|
3
|
+
description: Conventional Commits specification for structured commit messages
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Conventional Commits
|
|
7
|
+
|
|
8
|
+
## Format
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
<type>[optional scope]: <description>
|
|
12
|
+
|
|
13
|
+
[optional body]
|
|
14
|
+
|
|
15
|
+
[optional footer(s)]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Types
|
|
19
|
+
|
|
20
|
+
- `feat`: A new feature (correlates with MINOR in SemVer)
|
|
21
|
+
- `fix`: A bug fix (correlates with PATCH in SemVer)
|
|
22
|
+
- `docs`: Documentation only changes
|
|
23
|
+
- `style`: Changes that do not affect the meaning of the code
|
|
24
|
+
- `refactor`: A code change that neither fixes a bug nor adds a feature
|
|
25
|
+
- `perf`: A code change that improves performance
|
|
26
|
+
- `test`: Adding missing tests or correcting existing tests
|
|
27
|
+
- `chore`: Changes to the build process or auxiliary tools
|
|
28
|
+
|
|
29
|
+
## Rules
|
|
30
|
+
|
|
31
|
+
- Subject line must not exceed 72 characters
|
|
32
|
+
- Use imperative mood in the subject line ("add" not "added")
|
|
33
|
+
- Do not end the subject line with a period
|
|
34
|
+
- Separate subject from body with a blank line
|
|
35
|
+
- Use the body to explain what and why, not how
|
|
36
|
+
- `BREAKING CHANGE:` footer or `!` after type/scope for breaking changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tanstack-architecture
|
|
3
|
+
description: Architecture conventions for TanStack applications
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TanStack Architecture Conventions
|
|
7
|
+
|
|
8
|
+
## Project Structure
|
|
9
|
+
|
|
10
|
+
- Use file-based routing with TanStack Router (`routes/` directory)
|
|
11
|
+
- Colocate route components with their loaders and actions
|
|
12
|
+
- Organize by feature, not by type (e.g. `features/auth/`, not `components/auth/`)
|
|
13
|
+
|
|
14
|
+
## Data Flow
|
|
15
|
+
|
|
16
|
+
- Use TanStack Query for all server state management
|
|
17
|
+
- Use TanStack Router loaders for route-level data requirements
|
|
18
|
+
- Keep client state minimal — prefer server state via Query
|
|
19
|
+
- Use `queryOptions()` factory pattern for reusable query definitions
|
|
20
|
+
|
|
21
|
+
## Module Boundaries
|
|
22
|
+
|
|
23
|
+
- Each feature exports a public API via `index.ts`
|
|
24
|
+
- Features must not import from other features' internals
|
|
25
|
+
- Shared code goes in `lib/` or `shared/`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tanstack-code
|
|
3
|
+
description: Code style conventions for TanStack applications
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TanStack Code Conventions
|
|
7
|
+
|
|
8
|
+
## TypeScript
|
|
9
|
+
|
|
10
|
+
- Enable strict mode in tsconfig
|
|
11
|
+
- Infer types from TanStack APIs rather than writing manual type annotations
|
|
12
|
+
- Use `satisfies` operator for type-safe object literals
|
|
13
|
+
|
|
14
|
+
## Naming
|
|
15
|
+
|
|
16
|
+
- Query keys: `['entity', ...params]` (e.g. `['user', userId]`)
|
|
17
|
+
- Query option factories: `entityQueryOptions` (e.g. `userQueryOptions`)
|
|
18
|
+
- Route files: `$param` for dynamic segments (e.g. `users/$userId.tsx`)
|
|
19
|
+
- Loaders: export as named `loader` from route file
|
|
20
|
+
|
|
21
|
+
## Imports
|
|
22
|
+
|
|
23
|
+
- Import from `@tanstack/react-query`, `@tanstack/react-router`, etc.
|
|
24
|
+
- Never import internal modules from TanStack packages
|
|
25
|
+
- Use path aliases for project imports (`@/features/...`)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tanstack-design
|
|
3
|
+
description: Design patterns for TanStack applications
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TanStack Design Patterns
|
|
7
|
+
|
|
8
|
+
## Query Patterns
|
|
9
|
+
|
|
10
|
+
- Define query options as standalone functions: `export const userQueryOptions = (id: string) => queryOptions({ queryKey: ['user', id], queryFn: () => fetchUser(id) })`
|
|
11
|
+
- Use `useSuspenseQuery` in route components paired with `loader` for prefetching
|
|
12
|
+
- Use `useMutation` with `onSettled` for cache invalidation
|
|
13
|
+
|
|
14
|
+
## Router Patterns
|
|
15
|
+
|
|
16
|
+
- Define routes using `createFileRoute` for type-safe file-based routing
|
|
17
|
+
- Use `beforeLoad` for auth guards and redirects
|
|
18
|
+
- Use search params validation with `zodSearchValidator` for type-safe URL state
|
|
19
|
+
|
|
20
|
+
## Form Patterns
|
|
21
|
+
|
|
22
|
+
- Use TanStack Form with Zod validators for form state and validation
|
|
23
|
+
- Prefer field-level validation over form-level where possible
|
|
24
|
+
- Connect form submission to `useMutation` for server sync
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tanstack-testing
|
|
3
|
+
description: Testing conventions for TanStack applications
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TanStack Testing Conventions
|
|
7
|
+
|
|
8
|
+
## Query Testing
|
|
9
|
+
|
|
10
|
+
- Wrap components in `QueryClientProvider` with a fresh `QueryClient` per test
|
|
11
|
+
- Use `@testing-library/react` with `renderHook` for testing custom query hooks
|
|
12
|
+
- Mock at the network level with MSW, not at the query level
|
|
13
|
+
|
|
14
|
+
## Router Testing
|
|
15
|
+
|
|
16
|
+
- Use `createMemoryHistory` and `createRouter` for route testing
|
|
17
|
+
- Test route loaders independently as plain async functions
|
|
18
|
+
- Test search param validation with unit tests on the validator schema
|
|
19
|
+
|
|
20
|
+
## Integration Tests
|
|
21
|
+
|
|
22
|
+
- Test full user flows through route transitions
|
|
23
|
+
- Assert on visible UI state, not internal query cache state
|
|
24
|
+
- Use `waitFor` for async query resolution in component tests
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adr-nygard
|
|
3
|
+
description: Architecture Decision Records following Nygard's lightweight template
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Architecture Decision Records (Nygard)
|
|
7
|
+
|
|
8
|
+
## When to Write an ADR
|
|
9
|
+
|
|
10
|
+
- When making a significant architectural decision
|
|
11
|
+
- When choosing between multiple viable options
|
|
12
|
+
- When the decision will be hard to reverse
|
|
13
|
+
- When future developers will ask "why did we do this?"
|
|
14
|
+
|
|
15
|
+
## Template
|
|
16
|
+
|
|
17
|
+
Store ADRs in `docs/adr/` as numbered markdown files: `NNNN-title-with-dashes.md`
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
# N. Title
|
|
21
|
+
|
|
22
|
+
## Status
|
|
23
|
+
|
|
24
|
+
Proposed | Accepted | Deprecated | Superseded by [ADR-NNNN]
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
|
|
28
|
+
What is the issue that we're seeing that is motivating this decision or change?
|
|
29
|
+
|
|
30
|
+
## Decision
|
|
31
|
+
|
|
32
|
+
What is the change that we're proposing and/or doing?
|
|
33
|
+
|
|
34
|
+
## Consequences
|
|
35
|
+
|
|
36
|
+
What becomes easier or more difficult to do because of this change?
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Rules
|
|
40
|
+
|
|
41
|
+
- ADRs are immutable once accepted — supersede, don't edit
|
|
42
|
+
- Keep context focused on forces at play at the time of the decision
|
|
43
|
+
- Write consequences as both positive and negative impacts
|
|
44
|
+
- Number sequentially, never reuse numbers
|
|
45
|
+
- Title should be a short noun phrase (e.g. "Use PostgreSQL for persistence")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: "Always apply this skill when committing to git"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Create a conventional commit message with the following body:
|
|
7
|
+
|
|
8
|
+
```markdown
|
|
9
|
+
## Intent
|
|
10
|
+
|
|
11
|
+
<!-- Describe the intent of the commit. What problem does it solve? What was the motivation to introduce this change? -->
|
|
12
|
+
|
|
13
|
+
## Key changes
|
|
14
|
+
|
|
15
|
+
<!-- High level *conceptual* overview of the intended changes. Describe how the system behaves differently now. Do *not* list files -->
|
|
16
|
+
|
|
17
|
+
## Dependencies and side effects
|
|
18
|
+
|
|
19
|
+
<!-- only if applicable: Describe any effects this commit has on other parts of the system -->
|
|
20
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd
|
|
3
|
+
description: "Apply this when developing new features that add to or change the business logic of the system"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Apply TDD with agents:
|
|
7
|
+
|
|
8
|
+
1. Ask an agent to write a failing test (RED phase). The agent shall commit this as WIP.
|
|
9
|
+
2. Ask an agent to write the actual code to make the test pass (GREEN phase). The agent shall commit this as WIP.
|
|
10
|
+
3. Ask an agent to judge the previous two commits: The GREEN phase commit must not have changed semantics of tests implemented in the RED phase.
|
package/.beads/README.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Beads - AI-Native Issue Tracking
|
|
2
|
+
|
|
3
|
+
Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
|
|
4
|
+
|
|
5
|
+
## What is Beads?
|
|
6
|
+
|
|
7
|
+
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
|
|
8
|
+
|
|
9
|
+
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
### Essential Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Create new issues
|
|
17
|
+
bd create "Add user authentication"
|
|
18
|
+
|
|
19
|
+
# View all issues
|
|
20
|
+
bd list
|
|
21
|
+
|
|
22
|
+
# View issue details
|
|
23
|
+
bd show <issue-id>
|
|
24
|
+
|
|
25
|
+
# Update issue status
|
|
26
|
+
bd update <issue-id> --status in_progress
|
|
27
|
+
bd update <issue-id> --status done
|
|
28
|
+
|
|
29
|
+
# Sync with git remote
|
|
30
|
+
bd sync
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Working with Issues
|
|
34
|
+
|
|
35
|
+
Issues in Beads are:
|
|
36
|
+
|
|
37
|
+
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
|
|
38
|
+
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
|
|
39
|
+
- **Branch-aware**: Issues can follow your branch workflow
|
|
40
|
+
- **Always in sync**: Auto-syncs with your commits
|
|
41
|
+
|
|
42
|
+
## Why Beads?
|
|
43
|
+
|
|
44
|
+
✨ **AI-Native Design**
|
|
45
|
+
|
|
46
|
+
- Built specifically for AI-assisted development workflows
|
|
47
|
+
- CLI-first interface works seamlessly with AI coding agents
|
|
48
|
+
- No context switching to web UIs
|
|
49
|
+
|
|
50
|
+
🚀 **Developer Focused**
|
|
51
|
+
|
|
52
|
+
- Issues live in your repo, right next to your code
|
|
53
|
+
- Works offline, syncs when you push
|
|
54
|
+
- Fast, lightweight, and stays out of your way
|
|
55
|
+
|
|
56
|
+
🔧 **Git Integration**
|
|
57
|
+
|
|
58
|
+
- Automatic sync with git commits
|
|
59
|
+
- Branch-aware issue tracking
|
|
60
|
+
- Intelligent JSONL merge resolution
|
|
61
|
+
|
|
62
|
+
## Get Started with Beads
|
|
63
|
+
|
|
64
|
+
Try Beads in your own projects:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Install Beads
|
|
68
|
+
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
|
|
69
|
+
|
|
70
|
+
# Initialize in your repo
|
|
71
|
+
bd init
|
|
72
|
+
|
|
73
|
+
# Create your first issue
|
|
74
|
+
bd create "Try out Beads"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Learn More
|
|
78
|
+
|
|
79
|
+
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
|
|
80
|
+
- **Quick Start Guide**: Run `bd quickstart`
|
|
81
|
+
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
_Beads: Issue tracking that moves at the speed of thought_ ⚡
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Beads Configuration File
|
|
2
|
+
# This file configures default behavior for all bd commands in this repository
|
|
3
|
+
# All settings can also be set via environment variables (BD_* prefix)
|
|
4
|
+
# or overridden with command-line flags
|
|
5
|
+
|
|
6
|
+
# Issue prefix for this repository (used by bd init)
|
|
7
|
+
# If not set, bd init will auto-detect from directory name
|
|
8
|
+
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
|
|
9
|
+
issue-prefix: "ade"
|
|
10
|
+
|
|
11
|
+
# Use no-db mode: load from JSONL, no SQLite, write back after each command
|
|
12
|
+
# When true, bd will use .beads/issues.jsonl as the source of truth
|
|
13
|
+
# instead of SQLite database
|
|
14
|
+
no-db: true # JSONL-only mode, no SQLite database
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Disable daemon for RPC communication (forces direct database access)
|
|
18
|
+
# no-daemon: false
|
|
19
|
+
|
|
20
|
+
# Disable auto-flush of database to JSONL after mutations
|
|
21
|
+
# no-auto-flush: false
|
|
22
|
+
|
|
23
|
+
# Disable auto-import from JSONL when it's newer than database
|
|
24
|
+
# no-auto-import: false
|
|
25
|
+
|
|
26
|
+
# Enable JSON output by default
|
|
27
|
+
# json: false
|
|
28
|
+
|
|
29
|
+
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
|
|
30
|
+
# actor: ""
|
|
31
|
+
|
|
32
|
+
# Path to database (overridden by BEADS_DB or --db)
|
|
33
|
+
# db: ""
|
|
34
|
+
|
|
35
|
+
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
|
|
36
|
+
# auto-start-daemon: true
|
|
37
|
+
|
|
38
|
+
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
|
|
39
|
+
# flush-debounce: "5s"
|
|
40
|
+
|
|
41
|
+
# Git branch for beads commits (bd sync will commit to this branch)
|
|
42
|
+
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
|
|
43
|
+
# This setting persists across clones (unlike database config which is gitignored).
|
|
44
|
+
# Can also use BEADS_SYNC_BRANCH env var for local override.
|
|
45
|
+
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
|
|
46
|
+
# sync-branch: "beads-sync"
|
|
47
|
+
|
|
48
|
+
# Multi-repo configuration (experimental - bd-307)
|
|
49
|
+
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
|
|
50
|
+
# repos:
|
|
51
|
+
# primary: "." # Primary repo (where this database lives)
|
|
52
|
+
# additional: # Additional repos to hydrate from (read-only)
|
|
53
|
+
# - ~/beads-planning # Personal planning repo
|
|
54
|
+
# - ~/work-planning # Work planning repo
|
|
55
|
+
|
|
56
|
+
# Integration settings (access with 'bd config get/set')
|
|
57
|
+
# These are stored in the database, not in this file:
|
|
58
|
+
# - jira.url
|
|
59
|
+
# - jira.project
|
|
60
|
+
# - linear.url
|
|
61
|
+
# - linear.api-key
|
|
62
|
+
# - github.org
|
|
63
|
+
# - github.repo
|
|
File without changes
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{"id":"ade-1","title":"ade: bugfix (development-plan-fix-no-arch-selected.md)","description":"Responsible vibe engineering session using bugfix workflow for ade","status":"open","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:27.144211+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:27.144211+01:00"}
|
|
2
|
+
{"id":"ade-1.1","title":"Reproduce","description":"Gather specific information to reliably reproduce the reported bug: - What are the exact OS, browser/runtime versions, and hardware specs? - What is the precise sequence of actions that trigger the bug? - What error messages, logs, or stack traces are available? - Does this happen every time or intermittently? - How many users are affected and what is the business impact? Create test cases that demonstrate the problem. Document your findings and create tasks as needed.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:27.332884+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:27.332884+01:00","dependencies":[{"issue_id":"ade-1.1","depends_on_id":"ade-1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
3
|
+
{"id":"ade-1.1.1","title":"Reproduce bug: Run CLI setup and select skip for architecture, verify if takstack skills/docsets are added","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:29:57.811413+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:32:07.755014+01:00","closed_at":"2026-03-18T08:32:07.755014+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-1.1.1","depends_on_id":"ade-1.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
4
|
+
{"id":"ade-1.1.2","title":"Investigate: Check if there are other scenarios where TanStack skills/docsets might be incorrectly added","status":"closed","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:32:12.308229+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:33:51.388698+01:00","closed_at":"2026-03-18T08:33:51.388698+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-1.1.2","depends_on_id":"ade-1.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
5
|
+
{"id":"ade-1.2","title":"Analyze","description":"Examine the code paths involved in the bug, identify the root cause, and understand why the issue occurs. Use debugging tools, add logging, and trace through the problematic code. Document your analysis and create tasks as needed.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:27.524127+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:27.524127+01:00","dependencies":[{"issue_id":"ade-1.2","depends_on_id":"ade-1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-1.2","depends_on_id":"ade-1.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
6
|
+
{"id":"ade-1.3","title":"Fix","description":"Implement the solution based on your analysis: - If exists: Follow the design from it - Otherwise: Elaborate design options and present them to the user Before implementing, assess the approach: - How critical is this system? What is the blast radius if the fix causes issues? - Should this be a minimal fix or a more comprehensive solution? Make targeted changes that address the root cause without introducing new issues. Be careful to maintain existing functionality while fixing the bug.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:27.697356+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:27.697356+01:00","dependencies":[{"issue_id":"ade-1.3","depends_on_id":"ade-1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-1.3","depends_on_id":"ade-1.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
7
|
+
{"id":"ade-1.4","title":"Verify","description":"Test the fix thoroughly to ensure the original bug is resolved and no new issues were introduced. Run existing tests, create new ones if needed, and verify the solution is robust.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:27.865128+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:27.865128+01:00","dependencies":[{"issue_id":"ade-1.4","depends_on_id":"ade-1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-1.4","depends_on_id":"ade-1.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
8
|
+
{"id":"ade-1.5","title":"Finalize","description":"Ensure code quality and documentation accuracy through systematic cleanup and review. **STEP 1: Code Cleanup** Systematically clean up development artifacts: - Remove all temporary debug output statements used during bug investigation (console logging, print statements, debug output functions) - Address each TODO/FIXME comment by either implementing the solution or documenting why it's deferred - Remove completed TODOs and convert remaining ones to proper issue tracking if needed - Remove temporary debugging code, test code blocks, and commented-out code - Ensure proper error handling replaces temporary debug logging **STEP 2: Documentation Review** Review and update documentation to reflect the bug fix: - If exists, update it if design details were refined or changed during the fix - Compare documentation against the actual bug fix implementation - Update only the documentation sections that have functional changes - Remove references to investigation iterations, progress notes, and temporary decisions - Ensure documentation describes the final fixed state, not the debugging process - Ask the user to review document updates **STEP 3: Final Validation** - Run existing tests to ensure cleanup didn't break functionality - Verify documentation accuracy with a final review - Ensure bug fix is ready for production - Update task progress and mark completed work as you finalize the bug fix","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:27:28.031667+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:27:28.031667+01:00","dependencies":[{"issue_id":"ade-1.5","depends_on_id":"ade-1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-1.5","depends_on_id":"ade-1.4","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
9
|
+
{"id":"ade-2","title":"ade: epcc (development-plan-autonomy-facet.md)","description":"Responsible vibe engineering session using epcc workflow for ade","status":"open","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:42:24.649306+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:42:24.649306+01:00"}
|
|
10
|
+
{"id":"ade-2.1","title":"Explore","description":"Research the codebase to understand existing patterns and gather context about the problem space. - If uncertain about conventions or rules, ask the user about them - Read relevant files and documentation - If exists: Understand and document requirements there - Otherwise: Document requirements in your task management system Focus on understanding without writing code yet. Document your findings and create tasks as needed.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:42:24.818903+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:42:24.818903+01:00","dependencies":[{"issue_id":"ade-2.1","depends_on_id":"ade-2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
11
|
+
{"id":"ade-2.1.1","title":"Review existing behavior-oriented facets and catalog tests","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:46:07.923572+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:46:37.327782+01:00","closed_at":"2026-03-18T08:46:37.327782+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.1","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
12
|
+
{"id":"ade-2.1.2","title":"Define autonomy facet semantics and option structure","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:46:08.078116+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:51:49.76706+01:00","closed_at":"2026-03-18T08:51:49.76706+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.2","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
13
|
+
{"id":"ade-2.1.3","title":"Capture requirements and open questions for autonomy facet","status":"closed","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:46:08.214156+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:51:49.519989+01:00","closed_at":"2026-03-18T08:51:49.519989+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.3","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
14
|
+
{"id":"ade-2.1.4","title":"Trace harness permission model and MCP allowedTools integration","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:50:45.070267+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:51:49.634463+01:00","closed_at":"2026-03-18T08:51:49.634463+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.4","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
15
|
+
{"id":"ade-2.1.5","title":"Audit built-in and MCP permission controls for every harness writer","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:53:02.341058+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:54:27.952202+01:00","closed_at":"2026-03-18T08:54:27.952202+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.5","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
16
|
+
{"id":"ade-2.1.6","title":"Research official online permission and MCP docs for supported harnesses","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:57:45.709818+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:01:38.833489+01:00","closed_at":"2026-03-18T09:01:38.833489+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.1.6","depends_on_id":"ade-2.1","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
17
|
+
{"id":"ade-2.2","title":"Plan","description":"Create a detailed implementation strategy based on your exploration: - If exists: Base your strategy on requirements from it - Otherwise: Use existing task context Break down the work into specific, actionable tasks. Consider edge cases, dependencies, and potential challenges. - If architectural changes needed and exists: Document in - Otherwise: Create tasks to track architectural decisions - If exists: Adhere to the design in it - Otherwise: Elaborate design options and present them to the user Document the planning work thoroughly and create implementation tasks as part of the code phase as needed.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:42:24.985109+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:42:24.985109+01:00","dependencies":[{"issue_id":"ade-2.2","depends_on_id":"ade-2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2","depends_on_id":"ade-2.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
18
|
+
{"id":"ade-2.2.1","title":"Define shared autonomy policy model in core","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:14.478022+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:30.361315+01:00","closed_at":"2026-03-18T09:47:30.361315+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.2.1","depends_on_id":"ade-2.2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
19
|
+
{"id":"ade-2.2.2","title":"Define per-harness permission mapping and conservative fallback behavior","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:14.654561+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:30.574129+01:00","closed_at":"2026-03-18T09:47:30.574129+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.2.2","depends_on_id":"ade-2.2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.2","depends_on_id":"ade-2.2.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
20
|
+
{"id":"ade-2.2.3","title":"Define autonomy facet options and writer contract","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:14.901262+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:30.719054+01:00","closed_at":"2026-03-18T09:47:30.719054+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.2.3","depends_on_id":"ade-2.2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.3","depends_on_id":"ade-2.2.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.3","depends_on_id":"ade-2.2.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
21
|
+
{"id":"ade-2.2.4","title":"Define test strategy for autonomy policy and harness mappings","status":"closed","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:15.080583+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:30.843779+01:00","closed_at":"2026-03-18T09:47:30.843779+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.2.4","depends_on_id":"ade-2.2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.4","depends_on_id":"ade-2.2.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.4","depends_on_id":"ade-2.2.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.2.4","depends_on_id":"ade-2.2.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
22
|
+
{"id":"ade-2.3","title":"Code","description":"Follow your plan to build the solution: - If exists: Follow the design from it - Otherwise: Elaborate design options and present them to the user - If exists: Build according to the architecture from it - Otherwise: Elaborate architectural options and present them to the user - If exists: Ensure requirements from it are met - Otherwise: Ensure existing requirements are met based on your task context Write clean, well-structured code with proper error handling. Prevent regression by building, linting, and executing existing tests. Stay flexible and adapt the plan as you learn more during implementation. Update task progress and create new tasks as needed.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:42:25.149388+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:42:25.149388+01:00","dependencies":[{"issue_id":"ade-2.3","depends_on_id":"ade-2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3","depends_on_id":"ade-2.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
23
|
+
{"id":"ade-2.3.1","title":"Implement shared autonomy policy types and resolver plumbing","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:15.273279+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:30.972666+01:00","closed_at":"2026-03-18T09:47:30.972666+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.1","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.1","depends_on_id":"ade-2.2.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.1","depends_on_id":"ade-2.2.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
24
|
+
{"id":"ade-2.3.10","title":"Implement Claude Code harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:30.093088+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:29:21.191758+01:00","closed_at":"2026-03-18T11:29:21.191758+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.10","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
25
|
+
{"id":"ade-2.3.11","title":"Implement Copilot harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:30.289139+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:29:21.332749+01:00","closed_at":"2026-03-18T11:29:21.332749+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.11","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
26
|
+
{"id":"ade-2.3.12","title":"Implement OpenCode harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:30.49347+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:29:21.453832+01:00","closed_at":"2026-03-18T11:29:21.453832+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.12","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
27
|
+
{"id":"ade-2.3.13","title":"Implement Kiro harness mapping rewrite","status":"in_progress","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:30.663057+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:19:36.904021+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.13","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
28
|
+
{"id":"ade-2.3.14","title":"Implement Cline harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:30.881533+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:54:20.043232+01:00","closed_at":"2026-03-18T11:52:25.541203+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.14","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
29
|
+
{"id":"ade-2.3.15","title":"Implement Roo Code harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:31.073134+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:55:16.477017+01:00","closed_at":"2026-03-18T11:55:16.477017+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.15","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
30
|
+
{"id":"ade-2.3.16","title":"Implement Windsurf harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:31.2691+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:54:20.170992+01:00","closed_at":"2026-03-18T11:52:24.228288+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.16","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
31
|
+
{"id":"ade-2.3.17","title":"Implement Cursor harness mapping rewrite","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:31.474655+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:54:20.285805+01:00","closed_at":"2026-03-18T11:54:20.285805+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.17","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
32
|
+
{"id":"ade-2.3.18","title":"Document Universal harness limitations and autonomy behavior","status":"closed","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:31.649402+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:54:20.399842+01:00","closed_at":"2026-03-18T11:54:20.399842+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.18","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
33
|
+
{"id":"ade-2.3.19","title":"Document and enforce Universal autonomy limitation as instructions-only/no-op, with explicit tests","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:49:09.069988+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:52:20.8215+01:00","closed_at":"2026-03-18T11:52:20.8215+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.19","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
34
|
+
{"id":"ade-2.3.2","title":"Add autonomy facet and register it in the default catalog","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:15.458256+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:31.093414+01:00","closed_at":"2026-03-18T09:47:31.093414+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.2","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.2","depends_on_id":"ade-2.2.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
35
|
+
{"id":"ade-2.3.20","title":"Rewrite Roo Code autonomy mapping to capability-based mode config and separate MCP forwarding","status":"closed","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:49:27.176427+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:54:06.695191+01:00","closed_at":"2026-03-18T11:54:06.695191+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.20","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
36
|
+
{"id":"ade-2.3.21","title":"Fix Kiro agent discovery format","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T12:04:25.285287+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T12:05:22.626413+01:00","closed_at":"2026-03-18T12:05:22.626413+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.21","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
37
|
+
{"id":"ade-2.3.22","title":"Fix Kiro MCP exposure and Copilot MCP tool path format","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T12:26:00.150821+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T12:27:49.728151+01:00","closed_at":"2026-03-18T12:27:49.728151+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.22","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
38
|
+
{"id":"ade-2.3.23","title":"Fix Copilot MCP approval propagation","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T12:31:09.287703+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T12:34:04.967355+01:00","closed_at":"2026-03-18T12:34:04.967355+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.23","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
39
|
+
{"id":"ade-2.3.3","title":"Translate autonomy policy into harness-specific permission configs","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:15.660399+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:31.227711+01:00","closed_at":"2026-03-18T09:47:31.227711+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.3","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.3","depends_on_id":"ade-2.2.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.3","depends_on_id":"ade-2.3.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
40
|
+
{"id":"ade-2.3.4","title":"Extend catalog and harness tests for autonomy behavior","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:03:15.851771+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:47:31.349326+01:00","closed_at":"2026-03-18T09:47:31.349326+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.4","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.4","depends_on_id":"ade-2.3.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.4","depends_on_id":"ade-2.3.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.3.4","depends_on_id":"ade-2.3.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
41
|
+
{"id":"ade-2.3.5","title":"Add RED tests for autonomy facet and shared permission policy","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T09:11:13.472511+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T09:34:41.499038+01:00","closed_at":"2026-03-18T09:34:41.499038+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.5","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
42
|
+
{"id":"ade-2.3.6","title":"Fix OpenCode autonomy mapping and align sensible-defaults with sample permissions","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T10:00:41.881961+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T10:03:27.960435+01:00","closed_at":"2026-03-18T10:03:27.960435+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.6","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
43
|
+
{"id":"ade-2.3.7","title":"Research per-harness tool names and agent-level permission configuration surfaces","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T10:26:21.267422+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:55:16.592564+01:00","closed_at":"2026-03-18T11:53:13.403129+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.7","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
44
|
+
{"id":"ade-2.3.8","title":"Replan autonomy model per harness around built-in permissions only","status":"in_progress","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:01:01.074975+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:02:11.748853+01:00","dependencies":[{"issue_id":"ade-2.3.8","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
45
|
+
{"id":"ade-2.3.9","title":"Implement core autonomy abstraction rewrite for built-in permissions only","status":"closed","priority":1,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T11:15:29.905083+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T11:49:04.856825+01:00","closed_at":"2026-03-18T11:49:04.856825+01:00","close_reason":"Closed","dependencies":[{"issue_id":"ade-2.3.9","depends_on_id":"ade-2.3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
|
|
46
|
+
{"id":"ade-2.4","title":"Commit","description":"Ensure code quality and documentation accuracy through systematic cleanup and review. **STEP 1: Code Cleanup** Systematically clean up development artifacts: 1. **Remove Debug Output**: Search for and remove all temporary debug output statements used during development. Look for language-specific debug output methods (console logging, print statements, debug output functions). Remove any debugging statements that were added for development purposes. 2. **Review TODO/FIXME Comments**: - Address each TODO/FIXME comment by either implementing the solution or documenting why it's deferred - Remove completed TODOs - Convert remaining TODOs to proper issue tracking if needed 3. **Remove Debugging Code Blocks**: - Remove temporary debugging code, test code blocks, and commented-out code - Clean up any experimental code that's no longer needed - Ensure proper error handling replaces temporary debug logging **STEP 2: Documentation Review** Review and update documentation to reflect final implementation: 1. **Update Long-Term Memory Documents**: Based on what was actually implemented: - If exists: Update it if requirements changed during development - If exists: Update it if architectural impacts were identified - If exists: Update it if design details were refined or changed - Otherwise: Document any changes in the plan file 2. **Compare Against Implementation**: Review documentation against actual implemented functionality 3. **Update Changed Sections**: Only modify documentation sections that have functional changes 4. **Remove Development Progress**: Remove references to development iterations, progress notes, and temporary decisions 5. **Focus on Final State**: Ensure documentation describes the final implemented state, not the development process 6. **Ask User to Review Document Updates** **STEP 3: Final Validation** - Run existing tests to ensure cleanup didn't break functionality - Verify documentation accuracy with a final review - Ensure code is ready for production/delivery Update task progress and mark completed work as you finalize the feature.","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-18T08:42:25.322426+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T08:42:25.322426+01:00","dependencies":[{"issue_id":"ade-2.4","depends_on_id":"ade-2","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-2.4","depends_on_id":"ade-2.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ade-2.3.23
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"workflows": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["@codemcp/workflows-server@latest"]
|
|
6
|
+
},
|
|
7
|
+
"@codemcp/knowledge-server": {
|
|
8
|
+
"command": "npx",
|
|
9
|
+
"args": ["-y", "@codemcp/knowledge-server"]
|
|
10
|
+
},
|
|
11
|
+
"agentskills": {
|
|
12
|
+
"command": "npx",
|
|
13
|
+
"args": ["-y", "@codemcp/skills-server"]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: extending-catalog
|
|
3
|
+
description: Extends the ADE catalog with new facets, options, or practices. Use when adding a new architecture (e.g. Next.js), a new practice (e.g. Trunk-Based Development), or a new facet to the catalog.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Extending the ADE catalog
|
|
7
|
+
|
|
8
|
+
Catalog: `packages/core/src/catalog/`. Facets: one file each under `facets/`. Types: `packages/core/src/types.ts`.
|
|
9
|
+
|
|
10
|
+
## Adding an option
|
|
11
|
+
|
|
12
|
+
Single-file change. Append an `Option` to the facet's `options` array. Read the existing facet file for the shape — follow the pattern already there.
|
|
13
|
+
|
|
14
|
+
- Architecture options go in `facets/architecture.ts` (single-select)
|
|
15
|
+
- Practice options go in `facets/practices.ts` (multi-select, stack-independent)
|
|
16
|
+
- Each option's `recipe` uses existing writers: `skills`, `workflows`, `instruction`, `mcp-server`, `knowledge`, `installable`
|
|
17
|
+
- Inline skill bodies should be concise — only add context Claude doesn't already have
|
|
18
|
+
- For third-party skills use `ExternalSkill`: `{ name, source }` instead of `{ name, description, body }`
|
|
19
|
+
- `docsets` are optional — only add repos with genuinely useful reference docs
|
|
20
|
+
|
|
21
|
+
## Adding a facet
|
|
22
|
+
|
|
23
|
+
1. Create `facets/<name>.ts` — export a `Facet` object. Read an existing facet for the shape
|
|
24
|
+
2. Register it in `packages/core/src/catalog/index.ts` — add to the `facets` array
|
|
25
|
+
3. The CLI auto-discovers facets from the array — no UI changes needed
|
|
26
|
+
|
|
27
|
+
Key decisions: `required` (must every project choose?), `multiSelect` (composable or mutually exclusive?), `dependsOn` (resolved after which facets?).
|
|
28
|
+
|
|
29
|
+
## Adding a provision writer
|
|
30
|
+
|
|
31
|
+
Expensive — touches types, registry, resolver, and every harness writer. Avoid unless existing writers cannot express the output.
|
|
32
|
+
|
|
33
|
+
1. Extend `ProvisionWriter` union in `types.ts`
|
|
34
|
+
2. Implement `ProvisionWriterDef` with `write(config, context) → Partial<LogicalConfig>`
|
|
35
|
+
3. Register in `WriterRegistry`
|
|
36
|
+
4. If needed, extend `LogicalConfig` and update merge logic in `resolver.ts`
|
|
37
|
+
5. Update every harness writer in `packages/harnesses/src/writers/`
|
|
38
|
+
|
|
39
|
+
## Resolution flow
|
|
40
|
+
|
|
41
|
+
`UserConfig.choices` → `resolve()` iterates facets → matches options → runs each provision's writer → merges into `LogicalConfig` → harness writers emit agent-specific files. See `packages/core/src/resolver.ts`.
|
package/.cursor/mcp.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"workflows": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["@codemcp/workflows-server@latest"]
|
|
6
|
+
},
|
|
7
|
+
"@codemcp/knowledge-server": {
|
|
8
|
+
"command": "npx",
|
|
9
|
+
"args": ["-y", "@codemcp/knowledge-server"]
|
|
10
|
+
},
|
|
11
|
+
"agentskills": {
|
|
12
|
+
"command": "npx",
|
|
13
|
+
"args": ["-y", "@codemcp/skills-server"]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: ADE project conventions
|
|
3
|
+
globs: *
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are an AI assistant that helps users develop software features using the workflows server.
|
|
7
|
+
IMPORTANT: Call whats_next() after each user message to get phase-specific instructions and maintain the development workflow.
|
|
8
|
+
Each tool call returns a JSON response with an "instructions" field. Follow these instructions immediately after you receive them.
|
|
9
|
+
Use the development plan which you will retrieve via whats_next() to record important insights and decisions as per the structure of the plan.
|
|
10
|
+
Do not use your own task management tools.
|