@mindfoldhq/trellis 0.4.0-beta.5 → 0.4.0-beta.6

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 (80) hide show
  1. package/README.md +6 -2
  2. package/dist/cli/index.js +1 -0
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +1 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/configurators/codebuddy.d.ts +11 -0
  8. package/dist/configurators/codebuddy.d.ts.map +1 -0
  9. package/dist/configurators/codebuddy.js +58 -0
  10. package/dist/configurators/codebuddy.js.map +1 -0
  11. package/dist/configurators/index.d.ts.map +1 -1
  12. package/dist/configurators/index.js +13 -0
  13. package/dist/configurators/index.js.map +1 -1
  14. package/dist/configurators/opencode.d.ts +1 -1
  15. package/dist/configurators/opencode.js +1 -1
  16. package/dist/migrations/manifests/0.4.0-beta.6.json +9 -0
  17. package/dist/templates/codebuddy/commands/trellis/before-dev.md +29 -0
  18. package/dist/templates/codebuddy/commands/trellis/brainstorm.md +487 -0
  19. package/dist/templates/codebuddy/commands/trellis/break-loop.md +107 -0
  20. package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +153 -0
  21. package/dist/templates/codebuddy/commands/trellis/check.md +25 -0
  22. package/dist/templates/codebuddy/commands/trellis/create-command.md +154 -0
  23. package/dist/templates/codebuddy/commands/trellis/finish-work.md +143 -0
  24. package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +219 -0
  25. package/dist/templates/codebuddy/commands/trellis/onboard.md +358 -0
  26. package/dist/templates/codebuddy/commands/trellis/record-session.md +61 -0
  27. package/dist/templates/codebuddy/commands/trellis/start.md +373 -0
  28. package/dist/templates/codebuddy/commands/trellis/update-spec.md +354 -0
  29. package/dist/templates/codebuddy/index.d.ts +25 -0
  30. package/dist/templates/codebuddy/index.d.ts.map +1 -0
  31. package/dist/templates/codebuddy/index.js +45 -0
  32. package/dist/templates/codebuddy/index.js.map +1 -0
  33. package/dist/templates/codex/skills/before-dev/SKILL.md +1 -1
  34. package/dist/templates/codex/skills/brainstorm/SKILL.md +1 -1
  35. package/dist/templates/codex/skills/break-loop/SKILL.md +1 -1
  36. package/dist/templates/codex/skills/check/SKILL.md +1 -1
  37. package/dist/templates/codex/skills/check-cross-layer/SKILL.md +1 -1
  38. package/dist/templates/codex/skills/create-command/SKILL.md +1 -1
  39. package/dist/templates/codex/skills/finish-work/SKILL.md +1 -1
  40. package/dist/templates/codex/skills/integrate-skill/SKILL.md +1 -1
  41. package/dist/templates/codex/skills/onboard/SKILL.md +1 -1
  42. package/dist/templates/codex/skills/record-session/SKILL.md +1 -1
  43. package/dist/templates/codex/skills/start/SKILL.md +1 -1
  44. package/dist/templates/codex/skills/update-spec/SKILL.md +1 -1
  45. package/dist/templates/extract.d.ts +7 -0
  46. package/dist/templates/extract.d.ts.map +1 -1
  47. package/dist/templates/extract.js +13 -0
  48. package/dist/templates/extract.js.map +1 -1
  49. package/dist/templates/kiro/skills/before-dev/SKILL.md +1 -1
  50. package/dist/templates/kiro/skills/brainstorm/SKILL.md +1 -1
  51. package/dist/templates/kiro/skills/break-loop/SKILL.md +1 -1
  52. package/dist/templates/kiro/skills/check/SKILL.md +1 -1
  53. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +1 -1
  54. package/dist/templates/kiro/skills/create-command/SKILL.md +1 -1
  55. package/dist/templates/kiro/skills/finish-work/SKILL.md +1 -1
  56. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +1 -1
  57. package/dist/templates/kiro/skills/onboard/SKILL.md +1 -1
  58. package/dist/templates/kiro/skills/record-session/SKILL.md +1 -1
  59. package/dist/templates/kiro/skills/start/SKILL.md +1 -1
  60. package/dist/templates/kiro/skills/update-spec/SKILL.md +1 -1
  61. package/dist/templates/qoder/skills/before-dev/SKILL.md +1 -1
  62. package/dist/templates/qoder/skills/brainstorm/SKILL.md +1 -1
  63. package/dist/templates/qoder/skills/break-loop/SKILL.md +1 -1
  64. package/dist/templates/qoder/skills/check/SKILL.md +1 -1
  65. package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +1 -1
  66. package/dist/templates/qoder/skills/create-command/SKILL.md +1 -1
  67. package/dist/templates/qoder/skills/finish-work/SKILL.md +1 -1
  68. package/dist/templates/qoder/skills/integrate-skill/SKILL.md +1 -1
  69. package/dist/templates/qoder/skills/onboard/SKILL.md +1 -1
  70. package/dist/templates/qoder/skills/record-session/SKILL.md +1 -1
  71. package/dist/templates/qoder/skills/start/SKILL.md +1 -1
  72. package/dist/templates/qoder/skills/update-spec/SKILL.md +1 -1
  73. package/dist/templates/trellis/scripts/common/cli_adapter.py +32 -8
  74. package/dist/types/ai-tools.d.ts +3 -3
  75. package/dist/types/ai-tools.d.ts.map +1 -1
  76. package/dist/types/ai-tools.js +8 -0
  77. package/dist/types/ai-tools.js.map +1 -1
  78. package/package.json +1 -1
  79. /package/dist/templates/opencode/{plugin → plugins}/inject-subagent-context.js +0 -0
  80. /package/dist/templates/opencode/{plugin → plugins}/session-start.js +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: check
3
- description: "Check if the code you just wrote follows the development guidelines."
3
+ description: "Validates recently written code against project-specific development guidelines from .trellis/spec/. Identifies changed files via git diff, discovers applicable spec modules, runs lint and typecheck, and reports guideline violations. Use when code is written and needs quality verification, to catch context drift during long sessions, or before committing changes."
4
4
  ---
5
5
 
6
6
  Check if the code you just wrote follows the development guidelines.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: check-cross-layer
3
- description: "Cross-Layer Check"
3
+ description: "Post-implementation verification across multiple code dimensions: cross-layer data flow, code reuse analysis, import path validation, and same-layer consistency checks. Identifies missed update sites, type mismatches, and duplicated constants. Use when changes span 3+ architectural layers, after modifying shared constants or configs, after batch file modifications, or when creating new utility functions."
4
4
  ---
5
5
 
6
6
  # Cross-Layer Check
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: create-command
3
- description: "Create New Skill"
3
+ description: "Scaffolds a new skill file with proper naming conventions and structure. Analyzes requirements to determine skill type and generates appropriate content. Use when adding a new developer workflow skill, creating a custom skill, or extending the Trellis skill set."
4
4
  ---
5
5
 
6
6
  # Create New Skill
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: finish-work
3
- description: "Finish Work - Pre-Commit Checklist"
3
+ description: "Pre-commit quality checklist covering lint, typecheck, tests, code-spec sync, API changes, database migrations, cross-layer verification, and manual testing. Blocks commit if infra or cross-layer specs lack executable depth. Use when code is written and tested but not yet committed, before submitting changes, or as a final review before git commit."
4
4
  ---
5
5
 
6
6
  # Finish Work - Pre-Commit Checklist
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: integrate-skill
3
- description: "Integrate Skill into Project Guidelines"
3
+ description: "Adapts an external skill into project-specific development guidelines in .trellis/spec/. Creates guideline sections, code example templates with .template suffix, and updates spec indexes. Use when integrating an external skill, adding a new skill's patterns to project conventions, or incorporating third-party skill best practices into .trellis/spec/ documentation."
4
4
  ---
5
5
 
6
6
  # Integrate Skill into Project Guidelines
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: onboard
3
- description: "PART 3: Customize Your Development Guidelines"
3
+ description: "Interactive three-part onboarding for new team members to the Trellis AI-assisted workflow system. Covers core philosophy (AI memory, project-specific knowledge, context drift), system structure and command deep-dives, real-world workflow examples, and guideline customization. Use when a new developer joins the project, someone needs to understand the Trellis workflow, or project guidelines need initial setup."
4
4
  ---
5
5
 
6
6
  You are a senior developer onboarding a new team member to this project's AI-assisted workflow system.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: record-session
3
- description: "Record work progress after human has tested and committed code"
3
+ description: "Records completed work progress to .trellis/workspace/ journal files after human testing and commit. Captures session summaries, commit hashes, and updates developer index files for future session context. Use when a coding session is complete, after the human has committed code, or to persist session knowledge for future AI sessions."
4
4
  ---
5
5
 
6
6
  [!] **Prerequisite**: This skill should only be used AFTER the human has tested and committed the code.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: start
3
- description: "Start Session"
3
+ description: "Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/. Classifies incoming tasks and routes to brainstorm, direct edit, or task workflow. Use when beginning a new coding session, resuming work, starting a new task, or re-establishing project context."
4
4
  ---
5
5
 
6
6
  # Start Session
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: update-spec
3
- description: "Update Code-Spec - Capture Executable Contracts"
3
+ description: "Captures executable contracts and coding knowledge into .trellis/spec/ documents after implementation, debugging, or design decisions. Enforces code-spec depth for infra and cross-layer changes with mandatory sections for signatures, contracts, validation matrices, and test points. Use when a feature is implemented, a bug is fixed, a design decision is made, a new pattern is discovered, or cross-layer contracts change."
4
4
  ---
5
5
 
6
6
  # Update Code-Spec - Capture Executable Contracts
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: before-dev
3
- description: "Read the relevant development guidelines before starting your task."
3
+ description: "Discovers and injects project-specific coding guidelines from .trellis/spec/ before implementation begins. Reads spec indexes, pre-development checklists, and shared thinking guides for the target package. Use when starting a new coding task, before writing any code, switching to a different package, or needing to refresh project conventions and standards."
4
4
  ---
5
5
 
6
6
  Read the relevant development guidelines before starting your task.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: brainstorm
3
- description: "Brainstorm - Requirements Discovery (AI Coding Enhanced)"
3
+ description: "Collaborative requirements discovery session optimized for AI coding workflows. Creates task directories, seeds PRDs, runs codebase research, proposes concrete implementation approaches with trade-offs, and converges on MVP scope through structured Q&A. Use when requirements are unclear, multiple implementation paths exist, trade-offs need evaluation, or a complex feature needs scoping before development."
4
4
  ---
5
5
 
6
6
  # Brainstorm - Requirements Discovery (AI Coding Enhanced)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: break-loop
3
- description: "Break the Loop - Deep Bug Analysis"
3
+ description: "Deep post-fix bug analysis across five dimensions: root cause categorization, fix failure analysis, prevention mechanisms, systematic expansion, and knowledge capture. Updates .trellis/spec/ guides with lessons learned to prevent recurring bugs. Use when a debugging session completes, after fixing a tricky bug, when the same class of bug keeps recurring, or when you want to capture debugging insights into project documentation."
4
4
  ---
5
5
 
6
6
  # Break the Loop - Deep Bug Analysis
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: check
3
- description: "Check if the code you just wrote follows the development guidelines."
3
+ description: "Validates recently written code against project-specific development guidelines from .trellis/spec/. Identifies changed files via git diff, discovers applicable spec modules, runs lint and typecheck, and reports guideline violations. Use when code is written and needs quality verification, to catch context drift during long sessions, or before committing changes."
4
4
  ---
5
5
 
6
6
  Check if the code you just wrote follows the development guidelines.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: check-cross-layer
3
- description: "Cross-Layer Check"
3
+ description: "Post-implementation verification across multiple code dimensions: cross-layer data flow, code reuse analysis, import path validation, and same-layer consistency checks. Identifies missed update sites, type mismatches, and duplicated constants. Use when changes span 3+ architectural layers, after modifying shared constants or configs, after batch file modifications, or when creating new utility functions."
4
4
  ---
5
5
 
6
6
  # Cross-Layer Check
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: create-command
3
- description: "Create New Skill"
3
+ description: "Scaffolds a new skill file with proper naming conventions and structure. Analyzes requirements to determine skill type and generates appropriate content. Use when adding a new developer workflow skill, creating a custom skill, or extending the Trellis skill set."
4
4
  ---
5
5
 
6
6
  # Create New Skill
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: finish-work
3
- description: "Finish Work - Pre-Commit Checklist"
3
+ description: "Pre-commit quality checklist covering lint, typecheck, tests, code-spec sync, API changes, database migrations, cross-layer verification, and manual testing. Blocks commit if infra or cross-layer specs lack executable depth. Use when code is written and tested but not yet committed, before submitting changes, or as a final review before git commit."
4
4
  ---
5
5
 
6
6
  # Finish Work - Pre-Commit Checklist
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: integrate-skill
3
- description: "Integrate Skill into Project Guidelines"
3
+ description: "Adapts an external skill into project-specific development guidelines in .trellis/spec/. Creates guideline sections, code example templates with .template suffix, and updates spec indexes. Use when integrating an external skill, adding a new skill's patterns to project conventions, or incorporating third-party skill best practices into .trellis/spec/ documentation."
4
4
  ---
5
5
 
6
6
  # Integrate Skill into Project Guidelines
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: onboard
3
- description: "PART 3: Customize Your Development Guidelines"
3
+ description: "Interactive three-part onboarding for new team members to the Trellis AI-assisted workflow system. Covers core philosophy (AI memory, project-specific knowledge, context drift), system structure and command deep-dives, real-world workflow examples, and guideline customization. Use when a new developer joins the project, someone needs to understand the Trellis workflow, or project guidelines need initial setup."
4
4
  ---
5
5
 
6
6
  You are a senior developer onboarding a new team member to this project's AI-assisted workflow system.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: record-session
3
- description: "Record work progress after human has tested and committed code"
3
+ description: "Records completed work progress to .trellis/workspace/ journal files after human testing and commit. Captures session summaries, commit hashes, and updates developer index files for future session context. Use when a coding session is complete, after the human has committed code, or to persist session knowledge for future AI sessions."
4
4
  ---
5
5
 
6
6
  [!] **Prerequisite**: This command should only be used AFTER the human has tested and committed the code.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: start
3
- description: "Start Session"
3
+ description: "Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/. Classifies incoming tasks and routes to brainstorm, direct edit, or task workflow. Use when beginning a new coding session, resuming work, starting a new task, or re-establishing project context."
4
4
  ---
5
5
 
6
6
  # Start Session
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: update-spec
3
- description: "Update Code-Spec - Capture Executable Contracts"
3
+ description: "Captures executable contracts and coding knowledge into .trellis/spec/ documents after implementation, debugging, or design decisions. Enforces code-spec depth for infra and cross-layer changes with mandatory sections for signatures, contracts, validation matrices, and test points. Use when a feature is implemented, a bug is fixed, a design decision is made, a new pattern is discovered, or cross-layer contracts change."
4
4
  ---
5
5
 
6
6
  # Update Spec - Capture Knowledge into Specifications
@@ -1,7 +1,7 @@
1
1
  """
2
2
  CLI Adapter for Multi-Platform Support.
3
3
 
4
- Abstracts differences between Claude Code, OpenCode, Cursor, iFlow, Codex, Kilo, Kiro Code, Gemini CLI, Antigravity, and Qoder interfaces.
4
+ Abstracts differences between Claude Code, OpenCode, Cursor, iFlow, Codex, Kilo, Kiro Code, Gemini CLI, Antigravity, Qoder, and CodeBuddy interfaces.
5
5
 
6
6
  Supported platforms:
7
7
  - claude: Claude Code (default)
@@ -14,6 +14,7 @@ Supported platforms:
14
14
  - gemini: Gemini CLI
15
15
  - antigravity: Antigravity (workflow-based)
16
16
  - qoder: Qoder
17
+ - codebuddy: CodeBuddy
17
18
 
18
19
  Usage:
19
20
  from common.cli_adapter import CLIAdapter
@@ -43,6 +44,7 @@ Platform = Literal[
43
44
  "gemini",
44
45
  "antigravity",
45
46
  "qoder",
47
+ "codebuddy",
46
48
  ]
47
49
 
48
50
 
@@ -87,7 +89,7 @@ class CLIAdapter:
87
89
  """Get platform-specific config directory name.
88
90
 
89
91
  Returns:
90
- Directory name ('.claude', '.opencode', '.cursor', '.iflow', '.agents', '.kilocode', '.kiro', '.gemini', '.agent', or '.qoder')
92
+ Directory name ('.claude', '.opencode', '.cursor', '.iflow', '.agents', '.kilocode', '.kiro', '.gemini', '.agent', '.qoder', or '.codebuddy')
91
93
  """
92
94
  if self.platform == "opencode":
93
95
  return ".opencode"
@@ -107,6 +109,8 @@ class CLIAdapter:
107
109
  return ".agent"
108
110
  elif self.platform == "qoder":
109
111
  return ".qoder"
112
+ elif self.platform == "codebuddy":
113
+ return ".codebuddy"
110
114
  else:
111
115
  return ".claude"
112
116
 
@@ -117,7 +121,7 @@ class CLIAdapter:
117
121
  project_root: Project root directory
118
122
 
119
123
  Returns:
120
- Path to config directory (.claude, .opencode, .cursor, .iflow, .agents, .kilocode, .kiro, .gemini, .agent, or .qoder)
124
+ Path to config directory (.claude, .opencode, .cursor, .iflow, .agents, .kilocode, .kiro, .gemini, .agent, .qoder, or .codebuddy)
121
125
  """
122
126
  return project_root / self.config_dir_name
123
127
 
@@ -227,6 +231,8 @@ class CLIAdapter:
227
231
  return {}
228
232
  elif self.platform == "qoder":
229
233
  return {}
234
+ elif self.platform == "codebuddy":
235
+ return {}
230
236
  else:
231
237
  return {"CLAUDE_NON_INTERACTIVE": "1"}
232
238
 
@@ -294,6 +300,10 @@ class CLIAdapter:
294
300
  )
295
301
  elif self.platform == "qoder":
296
302
  cmd = ["qodercli", "-p", prompt]
303
+ elif self.platform == "codebuddy":
304
+ raise ValueError(
305
+ "CodeBuddy does not support non-interactive mode (no CLI agent)"
306
+ )
297
307
 
298
308
  else: # claude
299
309
  cmd = ["claude", "-p"]
@@ -342,6 +352,10 @@ class CLIAdapter:
342
352
  )
343
353
  elif self.platform == "qoder":
344
354
  return ["qodercli", "--resume", session_id]
355
+ elif self.platform == "codebuddy":
356
+ raise ValueError(
357
+ "CodeBuddy does not support non-interactive mode (no CLI agent)"
358
+ )
345
359
  else:
346
360
  return ["claude", "--resume", session_id]
347
361
 
@@ -406,6 +420,8 @@ class CLIAdapter:
406
420
  return "agy"
407
421
  elif self.platform == "qoder":
408
422
  return "qodercli"
423
+ elif self.platform == "codebuddy":
424
+ return "codebuddy"
409
425
  else:
410
426
  return "claude"
411
427
 
@@ -461,7 +477,7 @@ def get_cli_adapter(platform: str = "claude") -> CLIAdapter:
461
477
  """Get CLI adapter for the specified platform.
462
478
 
463
479
  Args:
464
- platform: Platform name ('claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', or 'qoder')
480
+ platform: Platform name ('claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', 'qoder', or 'codebuddy')
465
481
 
466
482
  Returns:
467
483
  CLIAdapter instance
@@ -480,9 +496,10 @@ def get_cli_adapter(platform: str = "claude") -> CLIAdapter:
480
496
  "gemini",
481
497
  "antigravity",
482
498
  "qoder",
499
+ "codebuddy",
483
500
  ):
484
501
  raise ValueError(
485
- f"Unsupported platform: {platform} (must be 'claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', or 'qoder')"
502
+ f"Unsupported platform: {platform} (must be 'claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', 'qoder', or 'codebuddy')"
486
503
  )
487
504
 
488
505
  return CLIAdapter(platform=platform) # type: ignore
@@ -498,6 +515,7 @@ _ALL_PLATFORM_CONFIG_DIRS = (
498
515
  ".kiro",
499
516
  ".gemini",
500
517
  ".agent",
518
+ ".codebuddy",
501
519
  )
502
520
  """All platform config directory names (used by detect_platform exclusion checks)."""
503
521
 
@@ -524,14 +542,15 @@ def detect_platform(project_root: Path) -> Platform:
524
542
  7. .kiro/skills exists and no other platform dirs → kiro
525
543
  8. .gemini directory exists → gemini
526
544
  9. .agent/workflows exists and no other platform dirs → antigravity
527
- 10. .qoder directory exists → qoder
528
- 11. Defaultclaude
545
+ 10. .codebuddy directory exists → codebuddy
546
+ 11. .qoder directory exists qoder
547
+ 12. Default → claude
529
548
 
530
549
  Args:
531
550
  project_root: Project root directory
532
551
 
533
552
  Returns:
534
- Detected platform ('claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', or 'qoder')
553
+ Detected platform ('claude', 'opencode', 'cursor', 'iflow', 'codex', 'kilo', 'kiro', 'gemini', 'antigravity', 'qoder', 'codebuddy', or default 'claude')
535
554
  """
536
555
  import os
537
556
 
@@ -548,6 +567,7 @@ def detect_platform(project_root: Path) -> Platform:
548
567
  "gemini",
549
568
  "antigravity",
550
569
  "qoder",
570
+ "codebuddy",
551
571
  ):
552
572
  return env_platform # type: ignore
553
573
 
@@ -592,6 +612,10 @@ def detect_platform(project_root: Path) -> Platform:
592
612
  ):
593
613
  return "antigravity"
594
614
 
615
+ # Check for .codebuddy directory (CodeBuddy-specific)
616
+ if (project_root / ".codebuddy").is_dir():
617
+ return "codebuddy"
618
+
595
619
  # Check for .qoder directory (Qoder-specific)
596
620
  if (project_root / ".qoder").is_dir():
597
621
  return "qoder"
@@ -6,16 +6,16 @@
6
6
  /**
7
7
  * Supported AI coding tools
8
8
  */
9
- export type AITool = "claude-code" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder";
9
+ export type AITool = "claude-code" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder" | "codebuddy";
10
10
  /**
11
11
  * Template directory categories
12
12
  */
13
- export type TemplateDir = "common" | "claude" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder";
13
+ export type TemplateDir = "common" | "claude" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder" | "codebuddy";
14
14
  /**
15
15
  * CLI flag names for platform selection (e.g., --claude, --cursor, --kilo, --kiro, --gemini, --antigravity)
16
16
  * Must match keys in InitOptions (src/commands/init.ts)
17
17
  */
18
- export type CliFlag = "claude" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder";
18
+ export type CliFlag = "claude" | "cursor" | "opencode" | "iflow" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "qoder" | "codebuddy";
19
19
  /**
20
20
  * Configuration for an AI tool
21
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAiFjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE3D"}
1
+ {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAyFjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE3D"}
@@ -95,6 +95,14 @@ export const AI_TOOLS = {
95
95
  defaultChecked: false,
96
96
  hasPythonHooks: false,
97
97
  },
98
+ codebuddy: {
99
+ name: "CodeBuddy",
100
+ templateDirs: ["common", "codebuddy"],
101
+ configDir: ".codebuddy",
102
+ cliFlag: "codebuddy",
103
+ defaultChecked: false,
104
+ hasPythonHooks: false,
105
+ },
98
106
  };
99
107
  /**
100
108
  * Get the configuration for a specific AI tool
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiC;IACpD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;KACrB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,KAAK;KACtB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;QACpC,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,UAAU;QACnB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;KACrB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;QACvC,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiC;IACpD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;KACrB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,KAAK;KACtB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;QACpC,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,UAAU;QACnB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;KACrB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;QACvC,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACrC,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,WAAW;QACpB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;KACtB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindfoldhq/trellis",
3
- "version": "0.4.0-beta.5",
3
+ "version": "0.4.0-beta.6",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",