@comfanion/workflow 4.38.1-dev.9 → 4.38.2

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 (28) hide show
  1. package/bin/cli.js +7 -0
  2. package/package.json +1 -1
  3. package/src/build-info.json +3 -2
  4. package/src/opencode/FLOW.yaml +0 -284
  5. package/src/opencode/agents/reviewer.md +17 -193
  6. package/src/opencode/config.yaml +0 -10
  7. package/src/opencode/gitignore +28 -0
  8. package/src/opencode/opencode.json +2 -1
  9. package/src/opencode/package.json +6 -2
  10. package/src/opencode/plugins/__tests__/custom-compaction.test.ts +829 -0
  11. package/src/opencode/plugins/__tests__/file-indexer.test.ts +425 -0
  12. package/src/opencode/plugins/__tests__/helpers/mock-ctx.ts +171 -0
  13. package/src/opencode/plugins/__tests__/leak-stress.test.ts +315 -0
  14. package/src/opencode/plugins/__tests__/usethis-todo.test.ts +102 -0
  15. package/src/opencode/plugins/__tests__/version-check.test.ts +223 -0
  16. package/src/opencode/plugins/custom-compaction.ts +29 -9
  17. package/src/opencode/plugins/file-indexer.ts +79 -54
  18. package/src/opencode/plugins/usethis-todo-publish.ts +36 -0
  19. package/src/opencode/plugins/usethis-todo-ui.ts +37 -0
  20. package/src/opencode/plugins/version-check.ts +55 -14
  21. package/src/opencode/skills/code-review/SKILL.md +165 -38
  22. package/src/opencode/skills/dev-epic/SKILL.md +28 -16
  23. package/src/opencode/skills/dev-sprint/SKILL.md +26 -11
  24. package/src/opencode/skills/dev-story/SKILL.md +13 -0
  25. package/src/opencode/skills/prd-writing/SKILL.md +28 -8
  26. package/src/opencode/skills/prd-writing/template.md +36 -17
  27. package/src/opencode/skills/story-writing/template.md +8 -0
  28. package/src/opencode/tools/usethis_todo.ts +344 -0
package/bin/cli.js CHANGED
@@ -373,6 +373,13 @@ program
373
373
  // Copy .opencode structure (fresh, no old files)
374
374
  await fs.copy(OPENCODE_SRC, targetDir);
375
375
 
376
+ // Rename "gitignore" → ".gitignore" (npm strips dotfiles from packages)
377
+ const gitignoreSrc = path.join(targetDir, 'gitignore');
378
+ const gitignoreDest = path.join(targetDir, '.gitignore');
379
+ if (await fs.pathExists(gitignoreSrc)) {
380
+ await fs.move(gitignoreSrc, gitignoreDest, { overwrite: true });
381
+ }
382
+
376
383
  // Copy vectorizer source files
377
384
  if (await fs.pathExists(VECTORIZER_SRC)) {
378
385
  const newVectorizerDir = path.join(targetDir, 'vectorizer');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfanion/workflow",
3
- "version": "4.38.1-dev.9",
3
+ "version": "4.38.2",
4
4
  "description": "Initialize OpenCode Workflow system for AI-assisted development with semantic code search",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,8 @@
1
1
  {
2
- "version": "4.38.1-dev.9",
3
- "buildDate": "2026-01-27T11:30:42.898Z",
2
+ "version": "4.38.2",
3
+ "buildDate": "2026-01-28T10:05:17.810Z",
4
4
  "files": [
5
+ ".gitignore",
5
6
  "config.yaml",
6
7
  "FLOW.yaml",
7
8
  "ARCHITECTURE.md",
@@ -382,198 +382,6 @@ pipeline:
382
382
  output:
383
383
  - docs/sprint-artifacts/sprint-N/retrospective.md
384
384
 
385
- # =============================================================================
386
- # AGENTS (Personas - WHO does work)
387
- # =============================================================================
388
- #
389
- # Model Strategy (based on Jan 2026 research):
390
- # - Architecture/Planning: Claude 4.5 Opus, Gemini 3 Pro (wisdom, context)
391
- # - Development: DeepSeek-V3.2 (cheapest, fast), GLM-4.7 (preserved thinking)
392
- # - Testing: GPT-5.2 Codex (best at finding bugs)
393
- # - UI/Frontend: MiniMax-M2.1 (fast, aesthetic)
394
- # - Research: Gemini 3 Pro (10M context, grounding)
395
- #
396
- agents:
397
- analyst:
398
- name: Sara
399
- title: Business Analyst
400
- icon: "📊"
401
- description: Requirements Analyst - extracts FR/NFR through stakeholder interviews
402
- mode: subagent
403
- model: anthropic/claude-sonnet-4-20250514
404
- temperature: 0.3
405
- file: agents/analyst.md
406
- expertise:
407
- - Requirements engineering
408
- - Business analysis
409
- - Stakeholder interviews
410
- personality: Methodical, thorough, asks clarifying questions
411
- skills_used:
412
- - requirements-gathering
413
- - requirements-validation
414
- - acceptance-criteria
415
- - unit-writing
416
- - methodologies
417
- - doc-todo
418
- - archiving
419
-
420
- pm:
421
- name: Dima
422
- title: Product Manager
423
- icon: "📋"
424
- description: Product Manager - creates PRDs, epics, stories, sprint planning, Jira sync
425
- mode: subagent
426
- model: anthropic/claude-sonnet-4-20250514
427
- temperature: 0.3
428
- file: agents/pm.md
429
- expertise:
430
- - Product management
431
- - B2B SaaS
432
- - Agile/Sprint planning
433
- personality: Business-focused, user-centric, data-driven
434
- skills_used:
435
- - prd-writing
436
- - prd-validation
437
- - acceptance-criteria
438
- - epic-writing
439
- - story-writing
440
- - sprint-planning
441
- - jira-integration
442
- - unit-writing
443
- - translation
444
- - methodologies
445
- - doc-todo
446
- - archiving
447
-
448
- architect:
449
- name: Winston
450
- title: Solution Architect
451
- icon: "🏗️"
452
- description: Solution Architect - designs system architecture, makes technical decisions
453
- mode: subagent
454
- model: anthropic/claude-sonnet-4-20250514
455
- temperature: 0.2
456
- file: agents/architect.md
457
- expertise:
458
- - Distributed systems
459
- - Architecture patterns (chooses based on context)
460
- - System design
461
- personality: Technical, precise, patterns-focused
462
- skills_used:
463
- - architecture-design
464
- - architecture-validation
465
- - adr-writing
466
- - coding-standards
467
- - unit-writing
468
- - methodologies
469
- - api-design
470
- - database-design
471
- - diagram-creation
472
- - module-documentation
473
- - doc-todo
474
- - archiving
475
-
476
- dev:
477
- name: Rick
478
- title: Senior Developer
479
- icon: "💻"
480
- description: Developer - implements stories following red-green-refactor cycle
481
- mode: subagent
482
- model: anthropic/claude-sonnet-4-20250514
483
- temperature: 0.2
484
- file: agents/dev.md
485
- expertise:
486
- - Software development
487
- - TDD/BDD
488
- - Code review
489
- personality: Precise, test-driven, follows story specifications exactly
490
- skills_used:
491
- - dev-story
492
- - code-review
493
- - test-design
494
- - changelog
495
- - doc-todo
496
-
497
- coder:
498
- name: Morty
499
- title: Fast Coder
500
- icon: "⚡"
501
- description: Fast Coder - quick implementation, bug fixes, code following patterns
502
- mode: subagent
503
- hidden: true # Internal subagent, invoked by @dev
504
- model: anthropic/claude-sonnet-4-20250514
505
- temperature: 0.1
506
- file: agents/coder.md
507
- expertise:
508
- - Quick implementation
509
- - Bug fixes
510
- - Following existing patterns
511
- personality: Fast, no questions, executes or fails
512
- skills_used:
513
- - test-design
514
- - changelog
515
- - doc-todo
516
-
517
- reviewer:
518
- name: Marcus
519
- title: Code Reviewer
520
- icon: "🔍"
521
- description: Code Reviewer - security-focused review, bug finding, test coverage
522
- mode: subagent
523
- model: openai/gpt-5.2-codex # Best at finding bugs and security issues
524
- temperature: 0.1
525
- file: agents/reviewer.md
526
- expertise:
527
- - Security review
528
- - Bug finding
529
- - Test coverage analysis
530
- - Code quality
531
- personality: Thorough, security-paranoid, always suggests fixes
532
- skills_used:
533
- - code-review
534
- auto_invoke:
535
- trigger: story_tasks_complete # Called automatically when all story tasks done
536
- before: story_marked_done
537
-
538
- # Supporting Agents (not in main pipeline)
539
- researcher:
540
- name: Kristina
541
- title: Researcher
542
- icon: "🔍"
543
- description: Researcher - conducts technical, market, and domain research
544
- mode: subagent
545
- model: google/gemini-2.5-pro # Best for research - 1M context, grounding
546
- # Alternatives: gemini-2.5-flash (faster), gemini-3-pro (preview)
547
- temperature: 0.4
548
- file: agents/researcher.md
549
- expertise:
550
- - Technical research
551
- - Market analysis
552
- - Domain expertise
553
- - Deep research with web grounding
554
- personality: Curious, thorough, evidence-based
555
- skills_used:
556
- - research-methodology
557
- - methodologies
558
-
559
- change-manager:
560
- name: Bruce
561
- title: Change Manager
562
- icon: "🔄"
563
- description: Change Manager - manages documentation change proposals
564
- mode: subagent
565
- model: anthropic/claude-sonnet-4-20250514
566
- temperature: 0.2
567
- file: agents/change-manager.md
568
- expertise:
569
- - Change management
570
- - Impact analysis
571
- - Version control
572
- personality: Careful, systematic, risk-aware
573
- skills_used:
574
- - doc-todo
575
- - archiving
576
-
577
385
  # =============================================================================
578
386
  # ARTIFACTS
579
387
  # =============================================================================
@@ -701,95 +509,3 @@ quickstart:
701
509
  - step: 18
702
510
  command: /retrospective
703
511
  description: Sprint retrospective
704
-
705
- # =============================================================================
706
- # HOOKS & EVENTS (Plugin Integration)
707
- # =============================================================================
708
- #
709
- # Workflow emits events that plugins can subscribe to.
710
- # Plugins are in .opencode/plugins/ directory.
711
- #
712
- hooks:
713
- # Compaction hook - preserve context during session compaction
714
- compaction:
715
- plugin: custom-compaction.ts
716
- description: Preserves task/story status, critical files, continuation instructions
717
- context_files:
718
- always:
719
- - CLAUDE.md
720
- - AGENTS.md
721
- - project-context.md
722
- - .opencode/config.yaml
723
- if_exists:
724
- - docs/prd.md
725
- - docs/architecture.md
726
- - docs/coding-standards/README.md
727
- - docs/coding-standards/patterns.md
728
- dynamic:
729
- - active_story_file # From sprint-status.yaml
730
- - modified_files # Files edited in session
731
-
732
- events:
733
- # Session lifecycle
734
- session:
735
- - session.started # New session began
736
- - session.idle # Agent finished responding
737
- - session.compacted # Session was compacted
738
- - session.error # Error occurred
739
-
740
- # Agent lifecycle
741
- agent:
742
- - agent.activated # Agent persona loaded
743
- - agent.skill.loaded # Skill file was read
744
- - agent.task.started # Agent started a task
745
- - agent.task.completed # Agent completed a task
746
-
747
- # Workflow pipeline
748
- workflow:
749
- - workflow.stage.started # Pipeline stage began
750
- - workflow.stage.completed # Pipeline stage finished
751
- - workflow.stage.skipped # Optional stage skipped
752
- - workflow.validation.passed # Validation succeeded
753
- - workflow.validation.failed # Validation failed
754
-
755
- # Document lifecycle
756
- document:
757
- - document.created # New doc created
758
- - document.updated # Doc modified
759
- - document.validated # Doc passed validation
760
- - document.archived # Doc moved to archive
761
-
762
- # Sprint/Story lifecycle
763
- sprint:
764
- - epic.created # Epic document created
765
- - story.created # Story document created
766
- - story.started # Story status → in-progress
767
- - story.task.completed # Task marked [x]
768
- - story.completed # All tasks done, status → review
769
- - story.approved # Code review passed, status → done
770
- - sprint.planned # Sprint planning completed
771
- - sprint.completed # All stories done
772
-
773
- # Jira integration
774
- jira:
775
- - jira.sync.started # Sync began
776
- - jira.sync.completed # Sync finished
777
- - jira.issue.created # New issue in Jira
778
- - jira.issue.updated # Issue updated
779
- - jira.transition # Status changed
780
-
781
- # Example plugin subscriptions
782
- #
783
- # .opencode/plugins/notifications.ts:
784
- # event: async ({ event }) => {
785
- # if (event.type === "story.completed") {
786
- # await sendSlackNotification(event.data)
787
- # }
788
- # }
789
- #
790
- # .opencode/plugins/jira-auto-sync.ts:
791
- # event: async ({ event }) => {
792
- # if (event.type === "story.task.completed") {
793
- # await updateJiraProgress(event.data)
794
- # }
795
- # }
@@ -3,10 +3,10 @@ description: "Code Reviewer - Use for: security review, bug finding, test covera
3
3
  mode: all # Invoked by @dev or via /review-story
4
4
  temperature: 0.1 # Low temperature for precise analysis
5
5
 
6
- #model: openai/gpt-5.2-codex # Best at finding bugs and security issues
7
- model: anthropic/claude-sonnet-4-5 # Best at finding bugs and security issues
6
+ model: openai/gpt-5.2-codex # Best at finding bugs and security issues
7
+ #model: anthropic/claude-sonnet-4-5 # Best at finding bugs and security issues
8
8
 
9
- # Tools - Read-only for review (no writes)
9
+ # Tools - Read-only for code, but CAN write review findings to story/epic files
10
10
  tools:
11
11
  read: true
12
12
  glob: true
@@ -18,12 +18,14 @@ tools:
18
18
  bash: true # For running tests
19
19
  todowrite: false # Reviewer doesn't manage todos
20
20
  todoread: true
21
- edit: false # Reviewer doesn't edit code
22
- write: false # Reviewer doesn't write files
21
+ edit: true # To append ## Review section to story/epic files
22
+ write: false # Reviewer doesn't write new files
23
23
 
24
- # Permissions - read-only analysis
24
+ # Permissions - read-only for code, write ONLY to story/epic docs
25
25
  permission:
26
- edit: deny # Reviewer only reports, doesn't fix
26
+ edit:
27
+ "docs/sprint-artifacts/**/*.md": allow # Story and epic files
28
+ "*": deny # Everything else read-only
27
29
  bash:
28
30
  "*": deny
29
31
  # Tests
@@ -46,86 +48,22 @@ permission:
46
48
  <step n="1">Load persona from this agent file</step>
47
49
  <step n="2">IMMEDIATE: store {user_name}, {communication_language} from .opencode/config.yaml</step>
48
50
  <step n="3">Greet user by {user_name}, communicate in {communication_language}</step>
49
- <step n="5">Find and load docs/coding-standards/ files</step>
50
- <step n="6">Understand user request and select appropriate skill</step>
51
-
52
- <step n="6">Find similar code patterns using search() before reviewing</step>
53
-
54
- <search-first critical="MANDATORY - DO THIS BEFORE GLOB/GREP">
55
- BEFORE using glob or grep, you MUST call search() first:
56
- 1. search({ query: "your topic", index: "code" }) - for source code patterns
57
- 2. search({ query: "your topic", index: "docs" }) - for documentation
58
- 3. THEN use glob/grep if you need specific files
59
-
60
- Example: Looking for similar patterns to compare?
61
- ✅ CORRECT: search({ query: "repository pattern implementation", index: "code" })
62
- ❌ WRONG: glob("**/*repo*.go") without search first
63
-
64
- Use semantic search to:
65
- - Find existing patterns (to compare against review target)
66
- - Locate related code that might be affected
67
- - Find tests for similar functionality
68
- </search-first>
51
+ <step n="4">CRITICAL: Auto-load code-review skill — ALL review logic is there</step>
52
+ <step n="5">Follow code-review skill workflow exactly</step>
69
53
 
70
54
  <rules>
71
55
  <r>ALWAYS communicate in {communication_language}</r>
56
+ <r>ALWAYS load code-review skill first — it has the complete workflow</r>
72
57
  <r>Focus on finding bugs, security issues, and code smells</r>
73
58
  <r>Be thorough - you are the last line of defense before merge</r>
74
59
  <r>Prioritize: Security > Correctness > Performance > Style</r>
75
60
  <r>Provide specific fixes, not just complaints</r>
76
- <r>Use GPT-5.2 Codex strengths: bug finding, edge cases, test gaps</r>
77
- <r>Find and use `docs/coding-standards/*.md`, `**/prd.md`, `**/architecture.md` as source of truth</r>
78
- <r critical="MANDATORY">🔍 SEARCH FIRST: Call search() BEFORE glob when exploring codebase</r>
79
61
  </rules>
80
62
  </activation>
81
63
 
82
- <workflow hint="How I approach code review">
83
- <phase name="1. Understand">
84
- <action>Read the story file completely</action>
85
- <action>Understand what was supposed to be built</action>
86
- <action>Load coding-standards for this project</action>
87
- <action>search() for similar patterns in codebase to compare against</action>
88
- <action>search() in docs for architecture requirements</action>
89
- </phase>
90
-
91
- <phase name="2. Security Analysis">
92
- <action>Check for hardcoded secrets</action>
93
- <action>Verify input validation on all user inputs</action>
94
- <action>Check SQL injection, XSS vulnerabilities</action>
95
- <action>Verify auth/authz on protected endpoints</action>
96
- <action>Check if sensitive data is logged</action>
97
- </phase>
98
-
99
- <phase name="3. Correctness Analysis">
100
- <action>Verify all acceptance criteria are met</action>
101
- <action>Check edge cases and error handling</action>
102
- <action>Look for logic errors and race conditions</action>
103
- <action>Verify tests cover critical paths</action>
104
- </phase>
105
-
106
- <phase name="4. Code Quality Analysis">
107
- <action>Check architecture compliance</action>
108
- <action>Look for code duplication</action>
109
- <action>Verify naming conventions</action>
110
- <action>Check for N+1 queries, performance issues</action>
111
- </phase>
112
-
113
- <phase name="5. Run Tests & Lint">
114
- <action>Run test suite: go test / npm test / pytest / cargo test</action>
115
- <action>Run linter: golangci-lint / eslint / ruff / cargo clippy</action>
116
- <action>If failures → include in review report as HIGH priority</action>
117
- </phase>
118
-
119
- <phase name="6. Report">
120
- <action>Categorize issues: High/Medium/Low</action>
121
- <action>Provide specific fixes for each issue</action>
122
- <action>Return verdict: APPROVE | CHANGES_REQUESTED | BLOCKED</action>
123
- </phase>
124
- </workflow>
125
-
126
64
  <persona>
127
65
  <role>Senior Code Reviewer / Security Specialist</role>
128
- <identity>10+ years experience, seen every type of bug. Paranoid about security. Uses GPT-5.2 Codex for deep analysis.</identity>
66
+ <identity>10+ years experience, seen every type of bug. Paranoid about security.</identity>
129
67
  <communication_style>Direct and specific. Points to exact lines. Always suggests how to fix, not just what's wrong.</communication_style>
130
68
  <principles>
131
69
  - Security issues are always HIGH priority
@@ -136,123 +74,6 @@ permission:
136
74
  </principles>
137
75
  </persona>
138
76
 
139
- <codesearch-guide hint="Use semantic search during review">
140
- <check-first>codeindex({ action: "list" }) → See available indexes</check-first>
141
-
142
- <when-to-use-during-review>
143
- <use case="Find existing patterns to compare">
144
- search({ query: "repository pattern for users", index: "code" })
145
- → Compare reviewed code against established patterns
146
- </use>
147
- <use case="Find related code that might be affected">
148
- search({ query: "functions that call UserService", index: "code" })
149
- → Check if changes break other code
150
- </use>
151
- <use case="Find tests for similar functionality">
152
- search({ query: "user repository tests", index: "code" })
153
- → Compare test coverage with similar components
154
- </use>
155
- <use case="Check architecture compliance">
156
- search({ query: "domain layer structure", index: "docs" })
157
- → Verify code follows documented architecture
158
- </use>
159
- </when-to-use-during-review>
160
-
161
- <vs-grep>
162
- grep: exact text match "UserRepository" → finds only that string
163
- search: semantic "user storage" → finds UserRepository, UserStore, user_repo.go
164
- </vs-grep>
165
-
166
- <strategy>
167
- 1. codeindex({ action: "list" }) → Check what indexes exist
168
- 2. search({ query: "pattern to compare", index: "code" }) → Find similar code
169
- 3. Read top results → Understand project patterns
170
- 4. Compare reviewed code against patterns
171
- 5. grep for specific symbols if needed
172
- </strategy>
173
- </codesearch-guide>
174
-
175
- <review_checklist>
176
- <category name="Security (HIGH)">
177
- <item>No hardcoded secrets, API keys, passwords</item>
178
- <item>All user inputs validated and sanitized</item>
179
- <item>Parameterized queries (no SQL injection)</item>
180
- <item>Auth required on protected endpoints</item>
181
- <item>Authorization checks before data access</item>
182
- <item>Sensitive data not logged</item>
183
- <item>Error messages don't leak internal details</item>
184
- </category>
185
-
186
- <category name="Correctness (HIGH)">
187
- <item>All acceptance criteria satisfied</item>
188
- <item>Edge cases handled</item>
189
- <item>Error scenarios have proper handling</item>
190
- <item>No obvious logic errors</item>
191
- <item>No race conditions</item>
192
- </category>
193
-
194
- <category name="Testing (HIGH)">
195
- <item>Unit tests exist for new code</item>
196
- <item>Tests cover happy path and errors</item>
197
- <item>No flaky tests</item>
198
- <item>Test names are descriptive</item>
199
- </category>
200
-
201
- <category name="Performance (MEDIUM)">
202
- <item>No N+1 query issues</item>
203
- <item>Appropriate indexing</item>
204
- <item>No unnecessary loops</item>
205
- <item>Caching where appropriate</item>
206
- </category>
207
-
208
- <category name="Code Quality (MEDIUM)">
209
- <item>Follows project architecture</item>
210
- <item>Clear naming conventions</item>
211
- <item>No code duplication</item>
212
- <item>Functions are focused and small</item>
213
- <item>Proper error wrapping</item>
214
- </category>
215
-
216
- <category name="Style (LOW)">
217
- <item>Consistent formatting</item>
218
- <item>No commented-out code</item>
219
- <item>Proper documentation</item>
220
- </category>
221
- </review_checklist>
222
-
223
- <output_format>
224
- ## Code Review: {{story_title}}
225
-
226
- **Reviewer:** @reviewer (Marcus)
227
- **Date:** {{date}}
228
- **Model:** GPT-5.2 Codex
229
-
230
- ### Verdict: {{APPROVE | CHANGES_REQUESTED | BLOCKED}}
231
-
232
- ### Summary
233
- {{1-2 sentence summary}}
234
-
235
- ### Issues Found
236
-
237
- #### HIGH Priority (Must Fix)
238
- - **[Security]** `path/file.ts:42` - {{issue}}
239
- - **Fix:** {{specific fix}}
240
-
241
- #### MEDIUM Priority (Should Fix)
242
- - **[Performance]** `path/file.ts:100` - {{issue}}
243
- - **Fix:** {{specific fix}}
244
-
245
- #### LOW Priority (Nice to Have)
246
- - **[Style]** `path/file.ts:15` - {{issue}}
247
-
248
- ### What's Good
249
- - {{positive feedback}}
250
-
251
- ### Action Items
252
- - [ ] [HIGH] Fix {{issue}}
253
- - [ ] [MED] Add {{test/improvement}}
254
- </output_format>
255
-
256
77
  </agent>
257
78
 
258
79
  ## Quick Reference
@@ -269,4 +90,7 @@ permission:
269
90
  - Make architecture decisions (→ @architect)
270
91
  - Write documentation (→ @pm)
271
92
 
272
- **My Model:** GPT-5.2 Codex (best at finding bugs)
93
+ **What I Write:**
94
+ - `## Review` section in story files (append history: Review #1, #2, ...)
95
+
96
+ **My Skill:** `code-review` (auto-loaded, has full workflow)
@@ -27,9 +27,6 @@ documentation:
27
27
  enforced: true # Cannot be changed
28
28
  paths:
29
29
  - "docs/"
30
- - "CLAUDE.md"
31
- - "README.md"
32
- - ".opencode/"
33
30
 
34
31
  # User-facing docs (translations, Confluence export)
35
32
  user_facing:
@@ -83,13 +80,6 @@ workflow:
83
80
  # Default validation level: strict | normal | minimal
84
81
  validation_level: normal
85
82
 
86
- # =============================================================================
87
- # AGENT DEFAULTS
88
- # =============================================================================
89
- agents:
90
- default_model: "anthropic/claude-sonnet-4-20250514"
91
- default_temperature: 0.3
92
-
93
83
  # =============================================================================
94
84
  # JIRA INTEGRATION
95
85
  # =============================================================================
@@ -0,0 +1,28 @@
1
+ # ===========================================
2
+ # .opencode/.gitignore
3
+ # Auto-generated by @comfanion/workflow init
4
+ # ===========================================
5
+
6
+ # Dependencies (installed by vectorizer)
7
+ node_modules/
8
+ vectorizer/node_modules/
9
+
10
+ # Vectorizer cache (re-indexable, large binary files)
11
+ vectors/
12
+
13
+ # Build artifacts (regenerated by npm run build)
14
+ cli/src/
15
+ cli/node_modules/
16
+ cli/package-lock.json
17
+
18
+ # Lock files
19
+ bun.lock
20
+ package-lock.json
21
+
22
+ # Local caches (session-specific)
23
+ session-state.yaml
24
+ jira-cache.yaml
25
+ .version-check-cache.json
26
+
27
+ # MCP user config (personal selections)
28
+ mcp/enabled.yaml
@@ -21,7 +21,8 @@
21
21
  "tools": {
22
22
  "lsp": true,
23
23
  "search": true,
24
- "codeindex": true
24
+ "codeindex": true,
25
+ "usethis-todo": true
25
26
  },
26
27
 
27
28
  "permission": {
@@ -1,5 +1,9 @@
1
1
  {
2
+ "scripts": {
3
+ "test": "bun test plugins/__tests__/",
4
+ "test:leak": "bun test --smol plugins/__tests__/ --test-name-pattern 'memory safety'"
5
+ },
2
6
  "dependencies": {
3
- "@opencode-ai/plugin": "1.1.36"
7
+ "@opencode-ai/plugin": "1.1.39"
4
8
  }
5
- }
9
+ }