@codemcp/ade 0.2.6 → 0.4.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.
Files changed (35) hide show
  1. package/.agentskills/skills/conventional-commits/SKILL.md +36 -0
  2. package/.beads/issues.jsonl +10 -0
  3. package/.beads/last-touched +1 -1
  4. package/.kiro/agents/ade.json +9 -2
  5. package/.opencode/agents/ade.md +9 -18
  6. package/.vibe/beads-state-ade-better-in-cli-explanation-b8jcv3.json +24 -0
  7. package/.vibe/beads-state-ade-fix-no-git-k396xs.json +34 -0
  8. package/.vibe/development-plan-better-in-cli-explanation.md +64 -0
  9. package/.vibe/development-plan-fix-no-git.md +76 -0
  10. package/AGENTS.md +27 -0
  11. package/config.lock.yaml +33 -9
  12. package/config.yaml +3 -0
  13. package/package.json +1 -1
  14. package/packages/cli/dist/index.js +190 -50
  15. package/packages/cli/package.json +1 -1
  16. package/packages/cli/src/commands/conventions.integration.spec.ts +8 -1
  17. package/packages/cli/src/commands/install.integration.spec.ts +1 -0
  18. package/packages/cli/src/commands/install.ts +19 -1
  19. package/packages/cli/src/commands/knowledge.integration.spec.ts +1 -0
  20. package/packages/cli/src/commands/setup.integration.spec.ts +2 -0
  21. package/packages/cli/src/commands/setup.spec.ts +2 -1
  22. package/packages/cli/src/commands/setup.ts +61 -6
  23. package/packages/cli/src/index.ts +8 -1
  24. package/packages/core/package.json +1 -1
  25. package/packages/core/src/catalog/catalog.spec.ts +1 -1
  26. package/packages/core/src/catalog/facets/autonomy.ts +9 -9
  27. package/packages/core/src/catalog/facets/backpressure.ts +1 -1
  28. package/packages/core/src/catalog/facets/practices.ts +1 -2
  29. package/packages/core/src/catalog/facets/process.ts +1 -1
  30. package/packages/harnesses/package.json +2 -1
  31. package/packages/harnesses/src/util.spec.ts +97 -0
  32. package/packages/harnesses/src/util.ts +21 -4
  33. package/packages/harnesses/src/writers/opencode.spec.ts +4 -6
  34. package/packages/harnesses/src/writers/opencode.ts +23 -27
  35. package/skills-lock.json +6 -1
@@ -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
@@ -50,3 +50,13 @@
50
50
  {"id":"ade-3.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-18T16:29:10.265074+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T16:29:10.265074+01:00","dependencies":[{"issue_id":"ade-3.3","depends_on_id":"ade-3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-3.3","depends_on_id":"ade-3.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
51
51
  {"id":"ade-3.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-18T16:29:10.449967+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T16:29:10.449967+01:00","dependencies":[{"issue_id":"ade-3.4","depends_on_id":"ade-3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-3.4","depends_on_id":"ade-3.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
52
52
  {"id":"ade-3.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-18T16:29:10.642935+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-18T16:29:10.642935+01:00","dependencies":[{"issue_id":"ade-3.5","depends_on_id":"ade-3","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-3.5","depends_on_id":"ade-3.4","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
53
+ {"id":"ade-4","title":"ade: bugfix (development-plan-fix-no-git.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-19T10:33:06.662828+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:06.662828+01:00"}
54
+ {"id":"ade-4.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-19T10:33:06.80022+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:06.80022+01:00","dependencies":[{"issue_id":"ade-4.1","depends_on_id":"ade-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
55
+ {"id":"ade-4.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-19T10:33:06.939399+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:06.939399+01:00","dependencies":[{"issue_id":"ade-4.2","depends_on_id":"ade-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-4.2","depends_on_id":"ade-4.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
56
+ {"id":"ade-4.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-19T10:33:07.076548+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:07.076548+01:00","dependencies":[{"issue_id":"ade-4.3","depends_on_id":"ade-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-4.3","depends_on_id":"ade-4.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
57
+ {"id":"ade-4.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-19T10:33:07.222264+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:07.222264+01:00","dependencies":[{"issue_id":"ade-4.4","depends_on_id":"ade-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-4.4","depends_on_id":"ade-4.3","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
58
+ {"id":"ade-4.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-19T10:33:07.356694+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T10:33:07.356694+01:00","dependencies":[{"issue_id":"ade-4.5","depends_on_id":"ade-4","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-4.5","depends_on_id":"ade-4.4","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
59
+ {"id":"ade-5","title":"ade: minor (development-plan-better-in-cli-explanation.md)","description":"Responsible vibe engineering session using minor workflow for ade","status":"open","priority":2,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-19T11:33:13.313751+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T11:33:13.313751+01:00"}
60
+ {"id":"ade-5.1","title":"Explore","description":"Understand the problem, analyze existing patterns, and design your approach. Consider the scope and impact of the change. **STEP 1: Analyze Requirements** - If exists: Use it to understand the required changes - Otherwise: Document requirements in your task management system **STEP 2: Review Design Approach** - If exists: Respect the design approach documented in - Otherwise: Design your approach based on the problem analysis **STEP 3: Document Decisions** - Document your analysis and design decisions - Create tasks to guide implementation - Focus on analysis and design only - do not write any code yet","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-19T11:33:13.459272+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T11:33:13.459272+01:00","dependencies":[{"issue_id":"ade-5.1","depends_on_id":"ade-5","type":"parent-child","created_at":"0001-01-01T00:00:00Z"}]}
61
+ {"id":"ade-5.2","title":"Implement","description":"Write clean, focused code for the minor enhancement, test your changes, and prepare for commit. **STEP 1: Review Design and Requirements** - If exists: Follow your design from - Otherwise: Elaborate design options and present them to the user - If exists: Ensure the relevant requirements from are met - Otherwise: Ensure existing requirements are met based on your task context **STEP 2: Implement Changes** - Write clean, focused code for the minor enhancement - Test your changes to ensure they work correctly and don't break existing functionality **STEP 3: Prepare for Finalization** - Update task progress as needed - Prepare documentation and commit when ready","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-19T11:33:13.597501+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T11:33:13.597501+01:00","dependencies":[{"issue_id":"ade-5.2","depends_on_id":"ade-5","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-5.2","depends_on_id":"ade-5.1","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
62
+ {"id":"ade-5.3","title":"Finalize","description":"Ensure code quality and documentation accuracy through systematic cleanup and review. **STEP 1: Code Cleanup** Systematically clean up development artifacts: - **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. - **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 - **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: - **Update Long-Term Memory Documents**: Based on what was actually implemented: - If exists: Update if requirements changed during development - If exists: Update if design details were refined or changed - **Compare Against Implementation**: Review documentation against actual implemented functionality - **Update Changed Sections**: Only modify documentation sections that have functional changes - **Remove Development Progress**: Remove references to development iterations, progress notes, and temporary decisions - **Focus on Final State**: Ensure documentation describes the final implemented state, not the development process - **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 minor enhancement is ready for delivery - Update task progress and mark completed work as you finalize the minor enhancement","status":"open","priority":3,"issue_type":"task","owner":"github@beimir.net","created_at":"2026-03-19T11:33:13.733496+01:00","created_by":"Oliver Jägle","updated_at":"2026-03-19T11:33:13.733496+01:00","dependencies":[{"issue_id":"ade-5.3","depends_on_id":"ade-5","type":"parent-child","created_at":"0001-01-01T00:00:00Z"},{"issue_id":"ade-5.3","depends_on_id":"ade-5.2","type":"blocks","created_at":"0001-01-01T00:00:00Z"}]}
@@ -1 +1 @@
1
- ade-3.5
1
+ ade-5.3
@@ -14,7 +14,14 @@
14
14
  "autoApprove": ["*"]
15
15
  }
16
16
  },
17
- "tools": ["read", "write", "spec", "@workflows/*", "@agentskills/*", "shell"],
18
- "allowedTools": ["read", "write", "spec", "@workflows/*", "@agentskills/*"],
17
+ "tools": ["read", "write", "shell", "spec", "@workflows/*", "@agentskills/*"],
18
+ "allowedTools": [
19
+ "read",
20
+ "write",
21
+ "shell",
22
+ "spec",
23
+ "@workflows/*",
24
+ "@agentskills/*"
25
+ ],
19
26
  "useLegacyMcpJson": true
20
27
  }
@@ -7,25 +7,25 @@ permission:
7
7
  "*.env": "deny"
8
8
  "*.env.*": "deny"
9
9
  "*.env.example": "allow"
10
- edit: "allow"
10
+ skill: "deny"
11
+ todoread: "deny"
12
+ todowrite: "deny"
13
+ task: "deny"
14
+ lsp: "allow"
11
15
  glob: "allow"
12
16
  grep: "allow"
13
17
  list: "allow"
14
- lsp: "allow"
15
- task: "allow"
16
- todoread: "deny"
17
- todowrite: "deny"
18
- skill: "deny"
18
+ external_directory: "ask"
19
+ edit: "allow"
19
20
  webfetch: "ask"
20
21
  websearch: "ask"
21
22
  codesearch: "ask"
22
23
  bash:
23
- "*": "deny"
24
+ "*": "ask"
24
25
  "grep *": "allow"
25
26
  "rg *": "allow"
26
27
  "find *": "allow"
27
28
  "fd *": "allow"
28
- ls: "allow"
29
29
  "ls *": "allow"
30
30
  "cat *": "allow"
31
31
  "head *": "allow"
@@ -60,14 +60,7 @@ permission:
60
60
  "yq *": "allow"
61
61
  "mkdir *": "allow"
62
62
  "touch *": "allow"
63
- "cp *": "ask"
64
- "mv *": "ask"
65
- "ln *": "ask"
66
- "npm *": "ask"
67
- "node *": "ask"
68
- "pip *": "ask"
69
- "python *": "ask"
70
- "python3 *": "ask"
63
+ "kill *": "ask"
71
64
  "rm *": "deny"
72
65
  "rmdir *": "deny"
73
66
  "curl *": "deny"
@@ -88,7 +81,6 @@ permission:
88
81
  "mkfs *": "deny"
89
82
  "mount *": "deny"
90
83
  "umount *": "deny"
91
- "kill *": "deny"
92
84
  "killall *": "deny"
93
85
  "pkill *": "deny"
94
86
  "nc *": "deny"
@@ -107,7 +99,6 @@ permission:
107
99
  "useradd *": "deny"
108
100
  "userdel *": "deny"
109
101
  "iptables *": "deny"
110
- external_directory: "deny"
111
102
  doom_loop: "deny"
112
103
  ---
113
104
 
@@ -0,0 +1,24 @@
1
+ {
2
+ "conversationId": "ade-better-in-cli-explanation-b8jcv3",
3
+ "projectPath": "/Users/oliverjaegle/projects/privat/codemcp/ade",
4
+ "epicId": "ade-5",
5
+ "phaseTasks": [
6
+ {
7
+ "phaseId": "explore",
8
+ "phaseName": "Explore",
9
+ "taskId": "ade-5.1"
10
+ },
11
+ {
12
+ "phaseId": "implement",
13
+ "phaseName": "Implement",
14
+ "taskId": "ade-5.2"
15
+ },
16
+ {
17
+ "phaseId": "finalize",
18
+ "phaseName": "Finalize",
19
+ "taskId": "ade-5.3"
20
+ }
21
+ ],
22
+ "createdAt": "2026-03-19T10:33:13.963Z",
23
+ "updatedAt": "2026-03-19T10:33:13.963Z"
24
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "conversationId": "ade-fix-no-git-k396xs",
3
+ "projectPath": "/Users/oliverjaegle/projects/privat/codemcp/ade",
4
+ "epicId": "ade-4",
5
+ "phaseTasks": [
6
+ {
7
+ "phaseId": "reproduce",
8
+ "phaseName": "Reproduce",
9
+ "taskId": "ade-4.1"
10
+ },
11
+ {
12
+ "phaseId": "analyze",
13
+ "phaseName": "Analyze",
14
+ "taskId": "ade-4.2"
15
+ },
16
+ {
17
+ "phaseId": "fix",
18
+ "phaseName": "Fix",
19
+ "taskId": "ade-4.3"
20
+ },
21
+ {
22
+ "phaseId": "verify",
23
+ "phaseName": "Verify",
24
+ "taskId": "ade-4.4"
25
+ },
26
+ {
27
+ "phaseId": "finalize",
28
+ "phaseName": "Finalize",
29
+ "taskId": "ade-4.5"
30
+ }
31
+ ],
32
+ "createdAt": "2026-03-19T09:33:07.866Z",
33
+ "updatedAt": "2026-03-19T09:33:07.866Z"
34
+ }
@@ -0,0 +1,64 @@
1
+ # Development Plan: ade (better-in-cli-explanation branch)
2
+
3
+ *Generated on 2026-03-19 by Vibe Feature MCP*
4
+ *Workflow: [minor](https://mrsimpson.github.io/responsible-vibe-mcp/workflows/minor)*
5
+
6
+ ## Goal
7
+ Improve user guidance in the ADE CLI — add contextual introductory text to help users understand what ADE is and what each setup facet (Process, Architecture, Practices, Autonomy, Backpressure, Harnesses, Docsets) means before they make a selection.
8
+
9
+ ## Explore
10
+ <!-- beads-phase-id: ade-5.1 -->
11
+ ### Tasks
12
+ - [x] Read and understand current CLI structure (index.ts, setup.ts, install.ts)
13
+ - [x] Read all facet definitions (process, architecture, practices, autonomy, backpressure)
14
+ - [x] Identify all prompts where contextual guidance is missing
15
+
16
+ ### Findings
17
+ - The setup command starts with `clack.intro("ade setup")` — no explanation of what ADE is or what the wizard will do
18
+ - Facet prompts show only `facet.label` as the message — no educational context about what the facet means
19
+ - The harness prompt says "which coding agents should receive config?" — helpful but no context on what harnesses are
20
+ - The docset prompt says "deselect any you don't need" — no explanation of what docsets are used for
21
+ - The skill install confirm says only "Install N skill(s) now?" — no context on what skills are
22
+ - `index.ts` help text is minimal — no explanation of ADE's purpose
23
+
24
+ ### Phase Entrance Criteria for Implement:
25
+ - [x] All touchpoints where user guidance is missing have been identified
26
+ - [x] Content approach is clear (what to say at each step)
27
+ - [x] No ambiguity about scope (we're adding text/hints, not redesigning prompts)
28
+
29
+ ## Implement
30
+ <!-- beads-phase-id: ade-5.2 -->
31
+
32
+ ### Phase Entrance Criteria:
33
+ - [x] Explore phase findings are complete
34
+ - [x] All identified touchpoints for improvement are listed
35
+ - [x] Scope is clearly defined: text additions only, no structural changes
36
+
37
+ ### Tasks
38
+ *Tasks managed via `bd` CLI*
39
+
40
+ ## Finalize
41
+ <!-- beads-phase-id: ade-5.3 -->
42
+
43
+ ### Phase Entrance Criteria:
44
+ - [x] All identified touchpoints have been addressed with guidance text
45
+ - [x] Code compiles without errors
46
+ - [x] Changes look correct and consistent in tone
47
+
48
+ ### Tasks
49
+ - [ ] Squash WIP commits: `git reset --soft <first commit of this branch>`. Then, create a conventional commit. In the message, first summarize the intentions and key decisions from the development plan. Then, add a brief summary of the key changes and their side effects and dependencies
50
+
51
+ *Tasks managed via `bd` CLI*
52
+
53
+ ## Key Decisions
54
+ - Used `clack.note()` for the ADE intro (boxed, titled) to make it stand out as orientation content vs. action prompts
55
+ - Used `clack.log.info()` before each facet/section prompt — lightweight, doesn't interrupt the flow, provides context without being intrusive
56
+ - Facet descriptions from the catalog data model are reused directly (they were already well-written) rather than duplicated elsewhere
57
+ - Harness guidance explicitly calls out the 'universal' option since it's the most common default and its purpose isn't obvious from the name alone
58
+ - Skill install context placed immediately before the confirm prompt so it reads naturally in sequence
59
+
60
+ ## Notes
61
+ *Additional context and observations*
62
+
63
+ ---
64
+ *This plan is maintained by the LLM and uses beads CLI for task management. Tool responses provide guidance on which bd commands to use for task management.*
@@ -0,0 +1,76 @@
1
+ # Development Plan: ade (fix-no-git branch)
2
+
3
+ *Generated on 2026-03-19 by Vibe Feature MCP*
4
+ *Workflow: [bugfix](https://mrsimpson.github.io/responsible-vibe-mcp/workflows/bugfix)*
5
+
6
+ ## Goal
7
+ Fix `writeGitHooks` crashing with ENOENT when run in a non-git directory. Instead of throwing, it should detect the absence of `.git` and emit a warning, then skip gracefully (Option B).
8
+
9
+ ## Reproduce
10
+ <!-- beads-phase-id: ade-4.1 -->
11
+ ### Bug Description
12
+ When `ade setup` is run in a non-git directory and pre-commit hooks are configured, `writeGitHooks` tries to open `.git/hooks/pre-commit` for writing. Since `.git` doesn't exist, Node throws `ENOENT` and the whole process crashes.
13
+
14
+ ### Error
15
+ ```
16
+ Error: ENOENT: no such file or directory, open '/private/tmp/manual-test/.git/hooks/pre-commit'
17
+ ```
18
+
19
+ ### Root Cause (already identified via code reading)
20
+ `packages/harnesses/src/util.ts` → `writeGitHooks()` writes directly to `.git/hooks/<phase>` without checking if `.git` exists.
21
+
22
+ ### Tasks
23
+
24
+ ## Analyze
25
+ <!-- beads-phase-id: ade-4.2 -->
26
+ ### Phase Entrance Criteria
27
+ - [x] Bug is reproducible and root cause is identified.
28
+ - [x] Affected code location is known (`writeGitHooks` in `packages/harnesses/src/util.ts`).
29
+
30
+ ### Analysis
31
+ - `writeGitHooks` is a shared utility called by every harness writer (universal, cursor, copilot, cline, claude-code, roo-code, opencode, kiro, windsurf).
32
+ - The fix belongs in `writeGitHooks` itself — one place, all callers benefit.
33
+ - Chosen approach: **Option B** — check for `.git` existence; if absent, emit a `clack.log.warn(...)` and return early. This keeps the user informed (backpressure) without crashing.
34
+ - `clack` is already used throughout the codebase; it is available in `util.ts`.
35
+
36
+ ### Tasks
37
+
38
+ ## Fix
39
+ <!-- beads-phase-id: ade-4.3 -->
40
+ ### Phase Entrance Criteria
41
+ - [x] Root cause is confirmed to be in `writeGitHooks`.
42
+ - [x] Fix strategy (Option B: warn + skip) is agreed upon.
43
+
44
+ ### Tasks
45
+ - [ ] In `writeGitHooks`: use `fs/promises.access` to check for `.git` directory existence before writing hooks.
46
+ - [ ] If `.git` is absent, call `clack.log.warn(...)` with a clear message and return.
47
+ - [ ] Also ensure `.git/hooks` directory is created if `.git` exists but `hooks` subdir is missing (use `mkdir` with `recursive: true`).
48
+ - [ ] Add / update unit tests in `install.spec.ts` or `util.spec.ts` to cover the non-git-repo case.
49
+
50
+ ## Verify
51
+ <!-- beads-phase-id: ade-4.4 -->
52
+ ### Phase Entrance Criteria
53
+ - [ ] `writeGitHooks` checks for `.git` existence and warns instead of crashing.
54
+ - [ ] `.git/hooks` dir is created when `.git` exists but `hooks` subdir is missing.
55
+ - [ ] Unit tests cover the new behavior.
56
+
57
+ ### Tasks
58
+ - [ ] Run existing test suite and confirm no regressions.
59
+ - [ ] Manually verify the warning message is shown when run outside a git repo.
60
+
61
+ ## Finalize
62
+ <!-- beads-phase-id: ade-4.5 -->
63
+ ### Phase Entrance Criteria
64
+ - [ ] All tests pass.
65
+ - [ ] Warning behavior verified.
66
+
67
+ ### Tasks
68
+ - [ ] Squash WIP commits: `git reset --soft <first commit of this branch>`. Then, create a conventional commit. In the message, first summarize the intentions and key decisions from the development plan. Then, add a brief summary of the key changes and their side effects and dependencies.
69
+
70
+ ## Key Decisions
71
+ - **Option B (warn + skip)** chosen over silent skip so users receive feedback that hooks were not installed — this preserves backpressure (user knows something was skipped).
72
+ - Fix is centralised in `writeGitHooks` utility; no changes needed in individual harness writers.
73
+
74
+ ## Notes
75
+ - `clack` import must be added to `util.ts` if not already present.
76
+ - All harness writers already import `writeGitHooks` from `../util.js` — no call-site changes needed.
package/AGENTS.md ADDED
@@ -0,0 +1,27 @@
1
+ # AGENTS
2
+
3
+ You are an AI assistant that helps users develop software features using the workflows server.
4
+ IMPORTANT: Call whats_next() after each user message to get phase-specific instructions and maintain the development workflow.
5
+ Each tool call returns a JSON response with an "instructions" field. Follow these instructions immediately after you receive them.
6
+ Use the development plan which you will retrieve via whats_next() to record important insights and decisions as per the structure of the plan.
7
+ Do not use your own task management tools.
8
+
9
+ ## Autonomy
10
+
11
+ Universal harness limitation: `AGENTS.md` + `.mcp.json` provide documentation and server registration only; there is no enforceable harness-level permission schema here.
12
+
13
+ Treat this autonomy profile as documentation-only guidance for built-in/basic operations.
14
+
15
+ Profile: `sensible-defaults`
16
+
17
+ Built-in/basic capability guidance:
18
+
19
+ - `read`: allow
20
+ - `edit_write`: allow
21
+ - `search_list`: allow
22
+ - `bash_safe`: allow
23
+ - `bash_unsafe`: ask
24
+ - `web`: ask
25
+ - `task_agent`: allow
26
+
27
+ MCP permissions are not re-modeled by autonomy here; any MCP approvals must come from provisioning-aware consuming harnesses rather than the Universal writer.
package/config.lock.yaml CHANGED
@@ -1,9 +1,10 @@
1
1
  version: 1
2
- generated_at: 2026-03-18T11:52:51.718Z
2
+ generated_at: 2026-03-19T09:28:46.177Z
3
3
  choices:
4
4
  process: codemcp-workflows
5
5
  practices:
6
6
  - adr-nygard
7
+ - conventional-commits
7
8
  autonomy: sensible-defaults
8
9
  harnesses:
9
10
  - universal
@@ -104,15 +105,38 @@ logical_config:
104
105
 
105
106
  - Title should be a short noun phrase (e.g. "Use PostgreSQL for
106
107
  persistence")
108
+ - name: conventional-commits
109
+ description: Conventional Commits specification for structured commit messages
110
+ body: |-
111
+ # Conventional Commits
112
+
113
+ ## Format
114
+ ```
115
+ <type>[optional scope]: <description>
116
+
117
+ [optional body]
118
+
119
+ [optional footer(s)]
120
+ ```
121
+
122
+ ## Types
123
+ - `feat`: A new feature (correlates with MINOR in SemVer)
124
+ - `fix`: A bug fix (correlates with PATCH in SemVer)
125
+ - `docs`: Documentation only changes
126
+ - `style`: Changes that do not affect the meaning of the code
127
+ - `refactor`: A code change that neither fixes a bug nor adds a feature
128
+ - `perf`: A code change that improves performance
129
+ - `test`: Adding missing tests or correcting existing tests
130
+ - `chore`: Changes to the build process or auxiliary tools
131
+
132
+ ## Rules
133
+ - Subject line must not exceed 72 characters
134
+ - Use imperative mood in the subject line ("add" not "added")
135
+ - Do not end the subject line with a period
136
+ - Separate subject from body with a blank line
137
+ - Use the body to explain what and why, not how
138
+ - `BREAKING CHANGE:` footer or `!` after type/scope for breaking changes
107
139
  git_hooks: []
108
140
  setup_notes: []
109
141
  permission_policy:
110
142
  profile: sensible-defaults
111
- capabilities:
112
- read: allow
113
- edit_write: allow
114
- search_list: allow
115
- bash_safe: allow
116
- bash_unsafe: ask
117
- web: ask
118
- task_agent: allow
package/config.yaml CHANGED
@@ -2,7 +2,10 @@ choices:
2
2
  process: codemcp-workflows
3
3
  practices:
4
4
  - adr-nygard
5
+ - conventional-commits
5
6
  autonomy: sensible-defaults
7
+ excluded_docsets:
8
+ - conventional-commits-spec
6
9
  harnesses:
7
10
  - universal
8
11
  - opencode
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/ade",
3
- "version": "0.2.6",
3
+ "version": "0.4.0",
4
4
  "description": "ADE CLI — Agentic Development Environment setup and configuration tool",
5
5
  "license": "MIT",
6
6
  "keywords": [