knowzcode 0.3.1 → 0.3.3

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.
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official KnowzCode plugin marketplace - Platform-agnostic AI development methodology",
9
- "version": "0.3.1"
9
+ "version": "0.3.3"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "kc",
14
14
  "source": "./",
15
15
  "description": "KnowzCode - Platform-agnostic AI development methodology with TDD, quality gates, and structured workflows",
16
- "version": "0.3.1",
16
+ "version": "0.3.3",
17
17
  "author": {
18
18
  "name": "Alex Headscarf"
19
19
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kc",
3
3
  "description": "KnowzCode - Platform-agnostic AI development methodology with TDD, quality gates, and structured workflows",
4
- "version": "0.3.1",
4
+ "version": "0.3.3",
5
5
  "author": {
6
6
  "name": "Alex Headscarf"
7
7
  }
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  [![License: MIT + Commons Clause](https://img.shields.io/badge/License-MIT_+_Commons_Clause-yellow.svg)](LICENSE)
8
8
  [![Claude Code Plugin](https://img.shields.io/badge/Claude_Code-Plugin-purple)](https://github.com/knowz-io/knowzcode)
9
- [![Version](https://img.shields.io/badge/version-0.3.1-blue)](https://github.com/knowz-io/knowzcode/releases)
9
+ [![Version](https://img.shields.io/badge/version-0.3.3-blue)](https://github.com/knowz-io/knowzcode/releases)
10
10
 
11
11
  [Installation](#installation) · [Quick Start](#quick-start) · [When to Use It](#when-to-use-knowzcode) · [How It Works](#how-it-works) · [Commands](#commands) · [Docs](#documentation)
12
12
 
package/agents/analyst.md CHANGED
@@ -59,6 +59,37 @@ If MCP is configured:
59
59
 
60
60
  If MCP is not available, use standard grep/glob. All analysis works without MCP.
61
61
 
62
+ ## Preliminary Findings Protocol (Parallel Teams Only)
63
+
64
+ When running in Parallel Teams mode and the architect is alive during Stage 0, stream preliminary NodeID findings as you discover them. This lets the architect start speculative research while you complete your full analysis.
65
+
66
+ ### Rules
67
+ - Max **3** `[PRELIMINARY]` DMs to the architect
68
+ - Send each DM as soon as you have high-confidence evidence for a NodeID — don't batch
69
+ - Do NOT wait for scouts to finish; send findings from your own scanning
70
+ - If the change is clearly a 1-NodeID micro-change, skip this protocol (no DMs needed)
71
+ - Sequential mode: skip this protocol entirely (no architect to DM)
72
+
73
+ ### Message Format
74
+ ```
75
+ [PRELIMINARY] NodeID: {PascalCaseName} | Affected: {comma-separated file paths} | Risk: {low/medium/high} | Spec: {new/update-existing}
76
+ ```
77
+
78
+ ### Example
79
+ ```
80
+ [PRELIMINARY] NodeID: UserAuth | Affected: src/auth/login.ts, src/auth/middleware.ts | Risk: medium | Spec: new
81
+ ```
82
+
83
+ ### When to Send
84
+ - After your first targeted grep confirms a distinct domain area is affected
85
+ - After reading a key file reveals cross-cutting impact worth a separate NodeID
86
+ - After scanner broadcasts confirm a new area you hadn't yet identified
87
+
88
+ ### What NOT to Send
89
+ - Speculative NodeIDs you haven't confirmed with at least one file read
90
+ - Duplicate findings (same NodeID already sent)
91
+ - Consolidation updates (save those for the final Change Set)
92
+
62
93
  ## Exit Expectations
63
94
 
64
95
  - Produce a complete Change Set (format defined in `knowzcode_loop.md` section 3.1)
@@ -84,6 +84,73 @@ Provide a structured Architecture Health Report at each quality gate. This is a
84
84
  - Recommendation: {proceed / fix drift}
85
85
  ```
86
86
 
87
+ ## Speculative Research Protocol (Parallel Teams Only)
88
+
89
+ During Stage 0, after completing your standard pre-load (architecture docs, existing specs, project config), use remaining idle time to conduct speculative research based on `[PRELIMINARY]` NodeID messages from the analyst.
90
+
91
+ ### Rules
92
+ - **READ-ONLY** — do NOT write any files, create tasks, or modify specs
93
+ - Research only — gather context for faster spec drafting after Gate #1
94
+ - Graceful degradation: if no `[PRELIMINARY]` DMs arrive, just finish standard pre-load and wait
95
+ - Max research scope: files mentioned in `[PRELIMINARY]` messages + their immediate imports/dependencies
96
+
97
+ ### What To Research
98
+ For each `[PRELIMINARY]` NodeID received:
99
+ 1. Read the affected files listed in the message
100
+ 2. Check `knowzcode/specs/*.md` for existing specs in the same domain (consolidation check)
101
+ 3. Analyze interface patterns — what public APIs exist, what contracts would a spec need to define
102
+ 4. Note cross-NodeID dependencies if multiple `[PRELIMINARY]` messages share files or interfaces
103
+
104
+ ### What NOT To Do
105
+ - Draft specs or write any content to disk
106
+ - Create tasks or assign work
107
+ - Send DMs to the analyst (don't interrupt their scanning)
108
+ - Research areas NOT mentioned in `[PRELIMINARY]` messages (stick to what the analyst flagged)
109
+
110
+ ### Outcome
111
+ By Gate #1, you should have ~80% of the research done for flagged NodeIDs. When the lead sends the approved Change Set and creates spec-drafting tasks, you can begin drafting immediately with deep context already loaded.
112
+
113
+ ## Parallel Spec Coordination (Parallel Teams — 3+ NodeIDs)
114
+
115
+ When the approved Change Set contains **3 or more NodeIDs**, the lead spawns temporary spec-drafter agents to parallelize spec drafting. You coordinate this process.
116
+
117
+ ### Threshold
118
+ - **1-2 NodeIDs**: You draft all specs alone (current behavior, zero overhead)
119
+ - **3+ NodeIDs**: Lead spawns spec-drafters, you coordinate and review
120
+
121
+ ### Your Coordination Role
122
+
123
+ #### 1. Partition NodeIDs
124
+ When the lead DMs you the approved Change Set with 3+ NodeIDs:
125
+ - Group NodeIDs into partitions of 1-2 each
126
+ - Constraints:
127
+ - NodeIDs targeting the **same existing spec** MUST be in the same partition
128
+ - NodeIDs with **interface dependencies** (one consumes the other's output) SHOULD be together
129
+ - Max 3 spec-drafter partitions (`ceil(NodeID_count / 2)`, capped at 3)
130
+ - Reply to the lead with your proposed partition plan
131
+
132
+ #### 2. Brief Each Drafter
133
+ For each spec-drafter partition, prepare a briefing (the lead includes this in the spawn prompt):
134
+ - Research findings from Speculative Research (file contents, interface analysis, consolidation notes)
135
+ - Cross-NodeID interface constraints (e.g., "NodeID-A's UserService is consumed by NodeID-B")
136
+ - Consolidation instructions (update existing spec vs. create new)
137
+ - VERIFY criteria guidance based on your architecture review
138
+
139
+ #### 3. Consistency Review
140
+ After all spec-drafters complete their specs:
141
+ - Read all drafted specs
142
+ - Check cross-spec alignment: naming consistency, interface compatibility, no conflicting decisions
143
+ - Verify VERIFY criteria coverage: every NodeID has 2+ VERIFY statements, no gaps
144
+ - Check consolidation: specs that should share a file do share a file
145
+ - Fix any inconsistencies directly (you have Write/Edit tools)
146
+ - Report consistency review results to the lead
147
+
148
+ ### What Spec-Drafters Do
149
+ Spec-drafters use your same agent definition (`architect`) with a scoped spawn prompt. They:
150
+ - Draft specs for their assigned NodeIDs using the 4-section format
151
+ - Follow the same Consolidation Mandate and Spec Philosophy as you
152
+ - Shut down after their specs are drafted (before your consistency review)
153
+
87
154
  ## During Implementation (Parallel Teams — Consultative Role)
88
155
 
89
156
  When builders are implementing, you persist as a read-only consultative resource:
@@ -280,6 +280,30 @@ Configure the KnowzCode MCP server using Claude Code's built-in MCP management.
280
280
  You can edit knowzcode/knowzcode_vaults.md to update descriptions or routing rules.
281
281
  ```
282
282
 
283
+ **Step 6f: Update CLAUDE.md with vault targeting guidance**
284
+
285
+ Ensure agents always know to pass `vaultId` by adding a reference section to the project's CLAUDE.md:
286
+
287
+ 1. Read the project's `CLAUDE.md`
288
+ 2. Search for an existing `### Vault Targeting` or `### Knowz MCP` section
289
+ 3. **If found:** Replace the existing section with the updated content below
290
+ 4. **If NOT found:** Append the section after the `# KnowzCode Integration` block (or at the end if not found)
291
+ 5. Insert a vault targeting reference section that points to the central config:
292
+
293
+ ```markdown
294
+ ### Vault Targeting (MCP Writes)
295
+ **Always pass `vaultId`** when calling `create_knowledge` or `update_knowledge`.
296
+ Omitting it saves to the tenant default vault — NOT the project vault.
297
+
298
+ Vault IDs and routing rules: `knowzcode/knowzcode_vaults.md`
299
+ If vault IDs are already in context from a previous read, do not re-read the file.
300
+ For ad-hoc learning capture, prefer `/kc:learn "insight"` — it handles routing automatically.
301
+ ```
302
+
303
+ 6. Confirm: `"Updated CLAUDE.md with vault targeting guidance (vault IDs managed in knowzcode/knowzcode_vaults.md)."`
304
+
305
+ **Idempotent:** Replaces existing `### Vault Targeting` section rather than duplicating.
306
+
283
307
  7. **Add MCP server using CLI**
284
308
  ```bash
285
309
  claude mcp add --transport http \
package/commands/work.md CHANGED
@@ -66,11 +66,15 @@ If `knowzcode/knowzcode_orchestration.md` exists, parse its YAML blocks:
66
66
  2. `SCOUT_MODE` = `scout_mode` value (default: "full")
67
67
  3. `DEFAULT_SPECIALISTS` = `default_specialists` value (default: [])
68
68
  4. `MCP_AGENTS_ENABLED` = `mcp_agents_enabled` value (default: true)
69
+ 5. `CODEBASE_SCANNER_ENABLED` = `codebase_scanner_enabled` value (default: true)
70
+ 6. `PARALLEL_SPEC_THRESHOLD` = `parallel_spec_threshold` value (default: 3, clamp to 2-10)
69
71
 
70
72
  Apply flag overrides (flags win over config):
71
73
  - `--max-builders=N` in `$ARGUMENTS` → override `MAX_BUILDERS`
72
74
  - `--no-scouts` in `$ARGUMENTS` → override `SCOUT_MODE = "none"`
73
75
  - `--no-mcp` in `$ARGUMENTS` → override `MCP_AGENTS_ENABLED = false`
76
+ - `--no-scanners` in `$ARGUMENTS` → override `CODEBASE_SCANNER_ENABLED = false`
77
+ - `--no-parallel-specs` in `$ARGUMENTS` → override `PARALLEL_SPEC_THRESHOLD = 999` (effectively disabled)
74
78
 
75
79
  If the file doesn't exist, use hardcoded defaults (current behavior).
76
80
 
@@ -354,7 +358,13 @@ When Parallel Teams mode is active, follow these 4 stages instead of spawning on
354
358
  - If `SCOUT_MODE = "none"`: spawn analyst + architect only (2 agents). Analyst and architect scan the codebase independently without pre-loaded scout context.
355
359
  - Always:
356
360
  - `TaskCreate("Phase 1A: Impact analysis for {goal}")` → `TaskUpdate(owner: "analyst")`
357
- - `TaskCreate("Pre-load architecture context")` → `TaskUpdate(owner: "architect")`
361
+ - `TaskCreate("Pre-load architecture context and speculative research")` → `TaskUpdate(owner: "architect")`
362
+ - If `CODEBASE_SCANNER_ENABLED = true` (default):
363
+ - Derive two search focuses from the goal:
364
+ - **Scanner-Direct**: source code search — grep for goal keywords, read affected code paths
365
+ - **Scanner-Tests**: test discovery — search test directories for tests covering the goal area
366
+ - `TaskCreate("Scanner: direct codebase scan for {goal}")` → `TaskUpdate(owner: "scanner-direct")`
367
+ - `TaskCreate("Scanner: test coverage scan for {goal}")` → `TaskUpdate(owner: "scanner-tests")`
358
368
  Spawn all Group A agents with their `{task-id}` in the spawn prompt (use spawn prompts from Phase Prompt Reference below).
359
369
  5. **Spawn Group B** (MCP agents — same turn as Group A): If `VAULTS_CONFIGURED = true` AND `MCP_AGENTS_ENABLED = true`:
360
370
  Create tasks first, pre-assign, then spawn with task IDs:
@@ -369,16 +379,17 @@ When Parallel Teams mode is active, follow these 4 stages instead of spawning on
369
379
  - If `project-advisor` in list: `TaskCreate("Project advisor: backlog context")` → `TaskUpdate(owner: "project-advisor")`
370
380
  Spawn each enabled specialist with its `{task-id}` in the spawn prompt (use spawn prompts from Specialist Spawn Prompts section below).
371
381
  If `SPECIALISTS_ENABLED` is empty, skip Group C.
372
- 7. **Roster confirmation** — lead lists every spawned agent by name to the user. Include Group C specialists if active. If `VAULTS_CONFIGURED` was true but knowz-scout or knowz-scribe is missing from the roster, STOP and re-spawn the missing agent(s) before continuing.
373
- 8. All spawned agents work immediately in parallel (context scouts are cheap Sonnet read-only agents; knowz-scribe is a cheap Haiku agent; specialists are Sonnet read-only agents). Agent count depends on orchestration config: 2-10 agents at Stage 0.
382
+ 7. **Roster confirmation** — lead lists every spawned agent by name to the user. Include scanners and Group C specialists if active. If `VAULTS_CONFIGURED` was true but knowz-scout or knowz-scribe is missing from the roster, STOP and re-spawn the missing agent(s) before continuing.
383
+ 8. All spawned agents work immediately in parallel (context scouts are cheap Sonnet read-only agents; scanners are lightweight general-purpose agents; knowz-scribe is a cheap Haiku agent; specialists are Sonnet read-only agents). Agent count depends on orchestration config: 2-12 agents at Stage 0.
374
384
  9. Scouts broadcast findings → analyst and architect consume as messages. Specialists work independently on their Stage 0 tasks.
375
385
 
376
- **Key**: The analyst does NOT wait for scouts or specialists to finish. It starts scanning the codebase immediately. Scout findings arrive as messages and enrich the analyst's work as they arrive. Specialist findings are consumed by the lead at gates.
386
+ **Key**: The analyst does NOT wait for scouts, scanners, or specialists to finish. It starts scanning the codebase immediately. Scout and scanner findings arrive as messages and enrich the analyst's work as they arrive. The analyst also streams `[PRELIMINARY]` NodeID findings to the architect as it discovers them (see Preliminary Findings Protocol). Specialist findings are consumed by the lead at gates.
377
387
 
378
388
  ### Stage 1: Analysis + Specification
379
389
 
380
390
  1. Analyst completes Change Set (includes dependency map — see `agents/analyst.md`)
381
391
  2. Lead reads analyst's task summary
392
+ 3. Shut down scanners (scanner-direct, scanner-tests) if they were spawned — no longer needed after analysis
382
393
  3. **Specialist Change Set reviews** (if `SPECIALISTS_ENABLED` non-empty): Create review tasks blocked on analysis:
383
394
  - If `security-officer` active: `TaskCreate("Security officer: Change Set review", addBlockedBy: [analysis-task-id])` → `TaskUpdate(owner: "security-officer")`. DM security-officer: `"**New Task**: #{task-id} — Review Change Set for security risk. Rate each NodeID."`
384
395
  - If `test-advisor` active: `TaskCreate("Test advisor: Change Set test strategy", addBlockedBy: [analysis-task-id])` → `TaskUpdate(owner: "test-advisor")`. DM test-advisor: `"**New Task**: #{task-id} — Recommend test types per NodeID."`
@@ -389,12 +400,29 @@ When Parallel Teams mode is active, follow these 4 stages instead of spawning on
389
400
  - Specialist Reports (if active — see gate template below)
390
401
  5. User approves (or rejects → re-run analyst with feedback)
391
402
  6. Lead sends DM to architect with the approved Change Set
392
- 7. Lead creates spec-drafting tasks for architect (1 task per NodeID, `addBlockedBy: [analysis-task-id]`):
393
- - `TaskCreate("Spec: NodeID-X")` → `TaskUpdate(taskId, owner: "architect")`
394
- - DM architect with task IDs: `"**New Tasks**: #{id-1} Spec: NodeID-A, #{id-2} Spec: NodeID-B. Approved Change Set: {summary}"`
395
- - Architect is already warm (pre-loaded during Stage 0) specs drafted FAST
403
+ 7. **Spec Drafting** choose path based on NodeID count and `PARALLEL_SPEC_THRESHOLD`:
404
+
405
+ **Path A: Standard (fewer than PARALLEL_SPEC_THRESHOLD NodeIDs)**
406
+ - Lead creates spec-drafting tasks for architect (1 task per NodeID, `addBlockedBy: [analysis-task-id]`):
407
+ - `TaskCreate("Spec: NodeID-X")` → `TaskUpdate(taskId, owner: "architect")`
408
+ - DM architect with task IDs: `"**New Tasks**: #{id-1} Spec: NodeID-A, #{id-2} Spec: NodeID-B. Approved Change Set: {summary}"`
409
+ - Architect is already warm (pre-loaded + speculative research during Stage 0) → specs drafted FAST
396
410
  - If Gate #1 rejected: shut down architect, re-run analyst with feedback, re-spawn architect after
397
- 8. Architect completes specs
411
+
412
+ **Path B: Parallel Spec Drafting (PARALLEL_SPEC_THRESHOLD or more NodeIDs)**
413
+ - Lead DMs architect the full approved Change Set and asks for a partition plan (see `agents/architect.md` — Parallel Spec Coordination)
414
+ - Architect proposes NodeID partitions (1-2 NodeIDs each, max 3 partitions, respecting same-spec and interface constraints)
415
+ - Lead spawns spec-drafter agents — one per partition:
416
+ - Spec-drafters use the `architect` agent definition with a scoped spawn prompt
417
+ - Each drafter gets: its NodeID partition, architect's research findings, cross-NodeID interface constraints, consolidation instructions
418
+ - `TaskCreate("Spec draft: NodeID-A, NodeID-B")` → `TaskUpdate(owner: "spec-drafter-1")`
419
+ - Max 3 spec-drafters: `ceil(NodeID_count / 2)`, capped at 3
420
+ - Spec-drafters draft specs in parallel
421
+ - After all spec-drafters complete: architect runs consistency review (cross-spec alignment, naming, VERIFY coverage)
422
+ - Shut down spec-drafters after consistency review
423
+ - If Gate #1 rejected: shut down architect and any spec-drafters, re-run analyst with feedback, re-spawn architect after
424
+
425
+ 8. Architect completes specs (Path A) or architect completes consistency review (Path B)
398
426
  9. **Test-advisor spec review** (if `test-advisor` in `SPECIALISTS_ENABLED`): After specs drafted, create spec testability review task:
399
427
  - `TaskCreate("Test advisor: spec testability review", addBlockedBy: [spec-task-id])` → `TaskUpdate(owner: "test-advisor")`
400
428
  - DM test-advisor: `"**New Task**: #{task-id} — Review specs for testability. Check VERIFY criteria are automatable."`
@@ -544,14 +572,17 @@ When creating tasks, model the dependency chain with `addBlockedBy` and pre-assi
544
572
  | Scout: backlog context | (none) | context-scout-backlog |
545
573
  | Knowz-scout: vault queries | (none — persistent) | knowz-scout |
546
574
  | Knowz-scribe: listen | (none — persistent) | knowz-scribe |
547
- | Phase 1A analysis | (none — scouts enrich via broadcast) | analyst |
548
- | Architect pre-load | (none) | architect |
575
+ | Scanner: direct codebase scan | (none) | scanner-direct |
576
+ | Scanner: test coverage scan | (none) | scanner-tests |
577
+ | Phase 1A analysis | (none — scouts + scanners enrich via broadcast) | analyst |
578
+ | Architect pre-load + speculative research | (none — receives [PRELIMINARY] DMs from analyst) | architect |
549
579
  | Security officer: initial threat scan | (none — Group C) | security-officer |
550
580
  | Test advisor: coverage baseline | (none — Group C) | test-advisor |
551
581
  | Project advisor: backlog context | (none — Group C) | project-advisor |
552
582
  | Security officer: Change Set review | Phase 1A analysis | security-officer |
553
583
  | Test advisor: Change Set test strategy | Phase 1A analysis | test-advisor |
554
- | Spec: NodeID-X | Phase 1A (gate approval) | architect |
584
+ | Spec: NodeID-X | Phase 1A (gate approval) | architect (Path A) or spec-drafter-N (Path B) |
585
+ | Spec consistency review | All spec drafts complete (Path B only) | architect |
555
586
  | Test advisor: spec testability review | Spec: NodeID-X | test-advisor |
556
587
  | Implement: NodeID-X | Spec: NodeID-X | builder-N |
557
588
  | Audit: NodeID-X | Implement: NodeID-X | reviewer-N |
@@ -631,6 +662,51 @@ Three instances of the same agent, each focused on a different local folder grou
631
662
 
632
663
  ---
633
664
 
665
+ ## Stage 0: Codebase Scanners (2 instances — conditional)
666
+
667
+ **Agent**: `general-purpose` (x2) | Lightweight codebase searchers (no agent definition file)
668
+
669
+ Two temporary agents that scan the codebase in parallel with the analyst, broadcasting findings to accelerate impact analysis. Only spawned when `CODEBASE_SCANNER_ENABLED = true` (default).
670
+
671
+ **scanner-direct spawn prompt**:
672
+ > You are `scanner-direct` for WorkGroup `{wgid}`.
673
+ > **Your Task**: #{task-id} — claim immediately (`TaskUpdate(status: "in_progress")`). Mark completed with summary when done.
674
+ > **Goal**: {goal}
675
+ > **Focus**: Search source code for goal-related keywords and patterns.
676
+ >
677
+ > **Steps**:
678
+ > 1. Grep for goal keywords across source files (exclude node_modules, dist, build, .git)
679
+ > 2. Read the top 5-8 matching files to understand affected code paths
680
+ > 3. Identify module boundaries and cross-module dependencies
681
+ > 4. Note public APIs and interfaces that may need changes
682
+ >
683
+ > **READ-ONLY.** Do NOT modify any files.
684
+ > **Deliverable**: Broadcast findings to all teammates — affected files, code paths, module boundaries, and interface patterns.
685
+ > **Budget**: Complete within ~12 turns. Focus on breadth over depth.
686
+
687
+ **scanner-tests spawn prompt**:
688
+ > You are `scanner-tests` for WorkGroup `{wgid}`.
689
+ > **Your Task**: #{task-id} — claim immediately (`TaskUpdate(status: "in_progress")`). Mark completed with summary when done.
690
+ > **Goal**: {goal}
691
+ > **Focus**: Discover tests covering the goal area to understand test patterns and coverage shape.
692
+ >
693
+ > **Steps**:
694
+ > 1. Glob for test files: `**/*.test.*`, `**/*.spec.*`, `**/test_*`, `**/tests/**`
695
+ > 2. Grep test files for goal-related keywords
696
+ > 3. Read 3-5 matching test files to understand testing patterns (test framework, mocking strategy, fixture patterns)
697
+ > 4. Check for integration/e2e tests related to the goal area
698
+ >
699
+ > **READ-ONLY.** Do NOT modify any files.
700
+ > **Deliverable**: Broadcast findings to all teammates — test file locations, testing patterns, coverage gaps, and fixture/mock patterns.
701
+ > **Budget**: Complete within ~12 turns. Focus on breadth over depth.
702
+
703
+ **Dispatch**:
704
+ - *Parallel Teams*: Spawned at Stage 0 if `CODEBASE_SCANNER_ENABLED = true`. Use `subagent_type: "general-purpose"`, `maxTurns: 12`. Shut down after Stage 1 (analyst completes Change Set).
705
+ - *Sequential Teams*: Not applicable (scanners are Parallel Teams only).
706
+ - *Subagent*: `Task(subagent_type="general-purpose", description="Scan codebase for {focus}", maxTurns=12, prompt=<above>)` if `CODEBASE_SCANNER_ENABLED = true`.
707
+
708
+ ---
709
+
634
710
  ## Stage 0: Knowz Scout
635
711
 
636
712
  **Agent**: `knowz-scout` | MCP vault researcher and knowledge agent
@@ -740,10 +816,12 @@ The spawn prompts below are used when `SPECIALISTS_ENABLED` is non-empty. Specia
740
816
  >
741
817
  > **Your Task**: #{task-id} — claim immediately (`TaskUpdate(status: "in_progress")`). Mark completed with summary when done.
742
818
  > **Conventions**: Update WorkGroup file with results (prefix entries with `KnowzCode:`). If blocked, report blocker and notify lead.
819
+ > **Codebase scanners**: Scanner agents are running in parallel — their findings will arrive as broadcast messages. Incorporate them into your analysis but do NOT wait for them.
820
+ > **Preliminary Findings Protocol**: As you discover high-confidence NodeIDs, DM the architect with `[PRELIMINARY]` messages (max 3 — see `agents/analyst.md` for format). This lets the architect start speculative research early.
743
821
  > **Deliverable**: Change Set proposal written to the WorkGroup file. Include NodeIDs, descriptions, affected files, risk assessment, and dependency map (for Parallel Teams mode).
744
822
 
745
823
  **Dispatch**:
746
- - *Parallel Teams*: Spawned at Stage 0 alongside scouts and architect. Starts immediately (no blockedBy).
824
+ - *Parallel Teams*: Spawned at Stage 0 alongside scouts, scanners, and architect. Starts immediately (no blockedBy).
747
825
  - *Sequential Teams*: Spawn teammate `analyst`, create task `Phase 1A: Impact analysis for "{goal}"`, wait for completion.
748
826
  - *Subagent*: `Task(subagent_type="analyst", description="Phase 1A impact analysis", prompt=<above>)`
749
827
 
@@ -783,11 +861,34 @@ If MCP is configured and knowz-scribe is active, after Change Set approval:
783
861
 
784
862
  ---
785
863
 
864
+ ## Stage 0: Architect Pre-load (Parallel Teams)
865
+
866
+ **Agent**: `architect` | Spawned at Stage 0 for context pre-loading and speculative research
867
+
868
+ In Parallel Teams mode, the architect is spawned at Stage 0 (not at Phase 1B). It pre-loads architecture context and performs speculative research on `[PRELIMINARY]` NodeIDs from the analyst.
869
+
870
+ **Stage 0 spawn prompt** (Parallel Teams only):
871
+ > You are the **architect** for WorkGroup `{wgid}`.
872
+ > Read `agents/architect.md` for your full role definition.
873
+ >
874
+ > **Goal**: {goal}
875
+ > **Context files**: Read sections 1-2 and 3.2 of `knowzcode/knowzcode_loop.md` (skip other phases), `knowzcode/knowzcode_project.md`, `knowzcode/knowzcode_architecture.md`
876
+ > **WorkGroup file**: `knowzcode/workgroups/{wgid}.md`
877
+ > **Specs directory**: `knowzcode/specs/`
878
+ >
879
+ > **Your Task**: #{task-id} — claim immediately (`TaskUpdate(status: "in_progress")`). Mark completed with summary when done.
880
+ > **Stage 0 Role**: Pre-load architecture context, then perform speculative research on any `[PRELIMINARY]` NodeID messages from the analyst (see Speculative Research Protocol in `agents/architect.md`). READ-ONLY research — do NOT write specs yet.
881
+ > **Lifecycle**: You persist through the entire workflow. After Gate #1, you will receive spec-drafting tasks via DM. After Gate #2, you shift to consultative role for builders.
882
+
883
+ After Gate #1, the lead sends the approved Change Set via DM and creates spec-drafting tasks. For spec-drafting prompts, see Phase 1B below.
884
+
885
+ ---
886
+
786
887
  ## Phase 1B: Specification
787
888
 
788
889
  **Agent**: `architect` | **Loop.md**: Section 3.2
789
890
 
790
- **Spawn prompt**:
891
+ **Spec-drafting prompt** (sent via DM to already-warm architect in Parallel Teams, or as spawn prompt in Sequential/Subagent):
791
892
  > You are the **architect** for WorkGroup `{wgid}`.
792
893
  > Read `agents/architect.md` for your full role definition.
793
894
  >
@@ -801,12 +902,29 @@ If MCP is configured and knowz-scribe is active, after Change Set approval:
801
902
  > **Conventions**: Update WorkGroup file with results (prefix entries with `KnowzCode:`). If blocked, report blocker and notify lead.
802
903
  > **Deliverable**: Finalized specs for all NodeIDs written to `knowzcode/specs/`.
803
904
 
905
+ **Spec-drafter spawn prompt** (Path B — 3+ NodeIDs, Parallel Teams only):
906
+ > You are `spec-drafter-{N}` for WorkGroup `{wgid}`.
907
+ > Read `agents/architect.md` for your full role definition — you follow the same Spec Philosophy, Spec Format, and Consolidation Mandate.
908
+ >
909
+ > **Goal**: {goal}
910
+ > **Your NodeIDs**: {partition — 1-2 NodeIDs assigned to this drafter}
911
+ > **Architect Research**: {research findings from architect's speculative research for these NodeIDs}
912
+ > **Cross-NodeID Constraints**: {interface dependencies, shared specs, naming conventions from architect}
913
+ > **Context files**: Read sections 1-2 and 3.2 of `knowzcode/knowzcode_loop.md`, `knowzcode/knowzcode_project.md`, `knowzcode/knowzcode_architecture.md`
914
+ > **WorkGroup file**: `knowzcode/workgroups/{wgid}.md`
915
+ > **Specs directory**: `knowzcode/specs/`
916
+ >
917
+ > **Your Task**: #{task-id} — claim immediately (`TaskUpdate(status: "in_progress")`). Mark completed with summary when done.
918
+ > **Deliverable**: Draft specs for your assigned NodeIDs written to `knowzcode/specs/`. The architect will review for consistency after all drafters finish.
919
+
804
920
  **Dispatch**:
805
- - *Parallel Teams*: Architect is already warm from Stage 0 pre-load. Lead sends DM with approved Change Set, then creates spec-drafting tasks. **Plan approval enabled** — add to prompt: `Present your spec design for lead review BEFORE writing final specs. Wait for approval.` If `AUTONOMOUS_MODE = true`: auto-approve `plan_approval_request` immediately. Log `[AUTO-APPROVED] Architect plan`.
921
+ - *Parallel Teams*:
922
+ - **Path A** (< PARALLEL_SPEC_THRESHOLD NodeIDs): Architect is already warm from Stage 0 pre-load + speculative research. Lead sends DM with approved Change Set, then creates spec-drafting tasks. **Plan approval enabled** — add to prompt: `Present your spec design for lead review BEFORE writing final specs. Wait for approval.` If `AUTONOMOUS_MODE = true`: auto-approve `plan_approval_request` immediately. Log `[AUTO-APPROVED] Architect plan`.
923
+ - **Path B** (>= PARALLEL_SPEC_THRESHOLD NodeIDs): Lead asks architect for partition plan. Architect proposes partitions. Lead spawns spec-drafters (`subagent_type: "architect"`, `permissionMode: "acceptEdits"`, `maxTurns: 15`) with partition-scoped prompts. After all drafters complete, architect runs consistency review and reports to lead.
806
924
  - *Sequential Teams*: Spawn teammate `architect`, create task `Phase 1B: Draft specifications for {N} NodeIDs`. **Plan approval enabled** — add to prompt: `Present your spec design for lead review BEFORE writing final specs. Wait for approval.` Wait for `plan_approval_request`, review, respond with `plan_approval_response`. If `AUTONOMOUS_MODE = true`: auto-approve immediately. Log `[AUTO-APPROVED] Architect plan`.
807
925
  - *Subagent*: `Task(subagent_type="architect", description="Phase 1B specification drafting", prompt=<above> + "Present your spec design in your output for lead review.")`
808
926
 
809
- > **Note:** Plan approval (agent pauses for lead review) only works in Agent Teams mode via `permissionMode: plan`. In subagent mode, the architect presents its design in the output for post-hoc review.
927
+ > **Note:** Plan approval (agent pauses for lead review) only works in Agent Teams mode via `permissionMode: plan`. In subagent mode, the architect presents its design in the output for post-hoc review. Spec-drafters (Path B) do NOT use plan approval — they follow the architect's partition briefing directly.
810
928
 
811
929
  ### Quality Gate #2
812
930
 
@@ -146,7 +146,8 @@ Use mailbox messaging for coordination between teammates:
146
146
  | From | To | When |
147
147
  |------|-----|------|
148
148
  | scout | all | Initial context/vault findings (broadcast) |
149
- | analyst | architect | Scope clarifications, NodeID overlap with existing specs |
149
+ | scanner | all | Codebase scan findings affected files, test patterns (broadcast) |
150
+ | analyst | architect | `[PRELIMINARY]` NodeID findings during Stage 0 (max 3 DMs), scope clarifications, NodeID overlap with existing specs |
150
151
  | architect | analyst | Scope adjustments needed |
151
152
  | architect | builder | Design guidance and spec intent responses |
152
153
  | builder | analyst | Affected files and dependency questions |
@@ -217,10 +218,13 @@ Agents must NOT create new tasks for work already assigned to them via task ID.
217
218
  | context-scout-specs | Stage 0 | After Gate #2 | Spec context lookups |
218
219
  | context-scout-workgroups | Stage 0 | After Gate #2 | WorkGroup history lookups |
219
220
  | context-scout-backlog | Stage 0 | After Gate #2 | Tracker/log/architecture lookups |
221
+ | scanner-direct | Stage 0 (conditional) | After Stage 1 (analyst done) | Source code scanning — broadcasts affected files and code paths |
222
+ | scanner-tests | Stage 0 (conditional) | After Stage 1 (analyst done) | Test discovery — broadcasts test patterns and coverage shape |
220
223
  | knowz-scout | Stage 0 | After Phase 3 capture | Vault queries (read-only) throughout workflow |
221
224
  | knowz-scribe | Stage 0 | After Phase 3 capture | Vault writes — receives capture messages, handles all `create_knowledge` calls |
222
225
  | analyst | Stage 0 | Early Stage 2 | Scope questions from builders |
223
- | architect | Stage 0 (pre-load) | After Gate #3 | Spec clarifications + design guidance for builders throughout Stage 2 |
226
+ | architect | Stage 0 (pre-load + speculative research) | After Gate #3 | Pre-load speculative research on `[PRELIMINARY]` NodeIDs → spec drafting (+ parallel coordination for 3+ NodeIDs) → design guidance for builders |
227
+ | spec-drafter(s) | Stage 1 (Path B, 3+ NodeIDs) | After architect consistency review | Draft specs for assigned NodeID partition |
224
228
  | builder(s) | Stage 2 | After Gate #3 | Implementation + gap fixes (persistent through gap loop) |
225
229
  | reviewer(s) | Stage 2 (1 per builder partition) | After Gate #3 | Incremental audit per partition (persistent through gap loop) |
226
230
  | security-officer | Stage 0 (Group C) | After Gate #3 | Threat modeling + vulnerability scanning (officer — can block gates) |
@@ -237,8 +241,8 @@ All tasks in a workflow use `addBlockedBy` to express the dependency chain:
237
241
 
238
242
  ### Task Graph Patterns
239
243
 
240
- - Stage 0 tasks: scout + knowz-scribe + analysis tasks (no deps)
241
- - Stage 1 tasks: spec drafting tasks (blocked by gate approval — lead creates after gate)
244
+ - Stage 0 tasks: scout + scanner + knowz-scribe + analysis tasks (no deps)
245
+ - Stage 1 tasks: spec drafting tasks (blocked by gate approval — lead creates after gate). Path B (3+ NodeIDs): spec-drafter tasks + architect consistency review task
242
246
  - Stage 2 tasks: implementation subtasks (blocked by spec approval), audit subtasks (blocked by implementation)
243
247
  - Stage 3 tasks: finalization (blocked by audit approval)
244
248
 
@@ -252,6 +256,8 @@ Team sizing defaults are configurable via `knowzcode/knowzcode_orchestration.md`
252
256
  | `scout_mode` | full | `--no-scouts` | full (3 scouts), minimal (1 scout), none (lead reads context) |
253
257
  | `default_specialists` | [] | `--specialists`, `--no-specialists` | Project-level specialist defaults |
254
258
  | `mcp_agents_enabled` | true | `--no-mcp` | Toggle vault agents (knowz-scout, knowz-scribe) |
259
+ | `codebase_scanner_enabled` | true | `--no-scanners` | Toggle codebase scanner agents (scanner-direct, scanner-tests) |
260
+ | `parallel_spec_threshold` | 3 | `--no-parallel-specs` | NodeID count threshold for parallel spec drafting (Path B) |
255
261
 
256
262
  Precedence: hardcoded defaults → orchestration config → per-invocation flags.
257
263
 
@@ -284,11 +290,22 @@ During Stage 2, the architect persists as a read-only consultative resource:
284
290
  - Lead notifies architect when builders are spawned — architect sends intro message to each builder
285
291
  - Shut down with builders and reviewers after Gate #3
286
292
 
287
- #### Discovery Pre-loading
288
- During Stage 0, the architect pre-loads context in parallel with analysis:
289
- - Architect reads architecture docs, existing specs, project config
290
- - When Gate #1 is approved, architect already has context specs drafted faster
291
- - If Gate #1 rejected, architect context is still useful for the revised analysis cycle
293
+ #### Discovery Pre-loading + Speculative Research
294
+ During Stage 0, the architect pre-loads context and conducts speculative research in parallel with analysis:
295
+ - **Pre-load phase**: Architect reads architecture docs, existing specs, project config (3-5 turns)
296
+ - **Speculative research phase**: After pre-load, architect receives `[PRELIMINARY]` NodeID messages from the analyst (max 3). For each, it reads affected files, checks spec consolidation, and analyzes interface patterns — all read-only, no spec writing
297
+ - When Gate #1 is approved, architect already has context + deep research on flagged NodeIDs specs drafted ~80% faster
298
+ - If Gate #1 rejected, architect context and research are still useful for the revised analysis cycle
299
+ - If no `[PRELIMINARY]` messages arrive (simple 1-NodeID change), architect finishes standard pre-load and waits
300
+
301
+ #### Parallel Spec Drafting (Path B — 3+ NodeIDs)
302
+ When the approved Change Set contains 3+ NodeIDs (configurable via `PARALLEL_SPEC_THRESHOLD`), spec drafting is parallelized:
303
+ - Architect proposes NodeID partitions (1-2 per partition, max 3 partitions)
304
+ - Lead spawns spec-drafter agents (using `architect` agent definition) for each partition
305
+ - Each drafter receives: its NodeIDs, architect's speculative research findings, cross-NodeID constraints
306
+ - After all drafters complete, architect runs a consistency review: cross-spec alignment, naming, VERIFY coverage
307
+ - Spec-drafters shut down after consistency review, before Gate #2
308
+ - For 1-2 NodeIDs (Path A), architect drafts all specs alone (current behavior, zero overhead)
292
309
 
293
310
  #### Specialist Agents (Group C — opt-in via `--specialists`)
294
311
 
@@ -296,11 +313,12 @@ When specialists are enabled, three additional agents spawn at Stage 0 alongside
296
313
 
297
314
  ```
298
315
  Group A (always): 3 context-scouts + analyst + architect (5 agents)
316
+ Group A (if scanners): + scanner-direct + scanner-tests (+2 agents)
299
317
  Group B (if MCP): knowz-scout + knowz-scribe (2 agents)
300
318
  Group C (if --specialists): security-officer + test-advisor + project-advisor (3 agents)
301
319
  ```
302
320
 
303
- Max Stage 0 concurrent: 5-10 agents depending on orchestration config (scouts, MCP agents, specialists). Scouts shut down after Gate #2, so Stage 2 peak is manageable.
321
+ Max Stage 0 concurrent: 5-12 agents depending on orchestration config (scouts, scanners, MCP agents, specialists). Scouts shut down after Gate #2, scanners shut down after Stage 1, so Stage 2 peak is manageable.
304
322
 
305
323
  ##### Officer vs Advisor Authority
306
324
 
@@ -54,10 +54,22 @@ Specialized agents handle each phase when using Agent Teams or subagent executio
54
54
  - `/kc:learn "insight"` — Capture learning to vault
55
55
  - `/kc:status` — Check MCP connection and vault status
56
56
 
57
- ## MCP Integration (Optional)
57
+ ## MCP Integration
58
58
  If configured, agents use `search_knowledge`, `ask_question`, and `create_knowledge` for enhanced context.
59
59
  All commands work without MCP — it enhances but never blocks.
60
60
 
61
+ ### Vault Targeting (MANDATORY when MCP is connected)
62
+ **When calling `create_knowledge` or `update_knowledge`, ALWAYS pass `vaultId`.**
63
+ Omitting `vaultId` saves to the tenant default vault (often Personal) — NOT the project vault.
64
+
65
+ Before any MCP write:
66
+ 1. Check if vault IDs are already in context from a previous read or CLAUDE.md
67
+ 2. If not, read `knowzcode/knowzcode_vaults.md` for vault IDs and routing rules
68
+ 3. Match your content type to the correct vault using the routing table
69
+ 4. Pass `vaultId` explicitly in every call
70
+
71
+ For ad-hoc learning capture, prefer `/kc:learn "insight"` — it handles routing automatically.
72
+
61
73
  ## WorkGroup Files
62
74
  - Created in `knowzcode/workgroups/` (gitignored)
63
75
  - Every todo must start with `KnowzCode:` prefix
@@ -130,6 +142,10 @@ Read `knowzcode/knowzcode_loop.md` before starting any feature work.
130
142
  - Every WorkGroup todo must start with `KnowzCode:` prefix
131
143
  - Target <20 specs per project — consolidate when domains overlap
132
144
 
145
+ ## Vault Targeting
146
+ When calling `create_knowledge`, always pass `vaultId` from `knowzcode/knowzcode_vaults.md`.
147
+ Omitting it saves to the wrong vault. Use `/kc:learn` for automatic routing.
148
+
133
149
  ## Quick Fix (Micro-Fix)
134
150
  For single-file, <50 line, no-ripple-effect changes:
135
151
  1. Implement the fix
@@ -242,6 +258,10 @@ Read these files before starting any feature work (use @import syntax for direct
242
258
  - Log completions in `knowzcode/knowzcode_log.md`
243
259
  - Target <20 specs — consolidate when domains overlap >50%
244
260
 
261
+ ## Vault Targeting
262
+ When calling `create_knowledge`, always pass `vaultId` from `knowzcode/knowzcode_vaults.md`.
263
+ Omitting it saves to the wrong vault. Use `/kc:learn` for automatic routing.
264
+
245
265
  ## Micro-Fix (for small changes)
246
266
  Single file, <50 lines, no ripple effects:
247
267
  1. Implement fix → 2. Run tests → 3. Log MicroFix → 4. Commit with `fix:`
@@ -309,6 +329,10 @@ Before any feature work, read:
309
329
  - Target <20 specs per project
310
330
  - Read `knowzcode/knowzcode_tracker.md` for active work
311
331
  - Log completions in `knowzcode/knowzcode_log.md`
332
+
333
+ ## Vault Targeting
334
+ When calling `create_knowledge`, always pass `vaultId` from `knowzcode/knowzcode_vaults.md`.
335
+ Omitting it saves to the wrong vault. Use `/kc:learn` for automatic routing.
312
336
  ```
313
337
 
314
338
  ---
@@ -397,11 +421,15 @@ Follow Red-Green-Refactor for every feature/criterion in the spec.
397
421
  - `knowzcode/specs/` — Component specifications
398
422
  - `knowzcode/workgroups/` — Active session data (gitignored)
399
423
 
400
- ## MCP Integration (Optional)
424
+ ## MCP Integration
401
425
 
402
426
  If configured in `.vscode/mcp.json`, use `search_knowledge` and `ask_question` tools
403
427
  for enhanced context from knowledge vaults. All prompts work without MCP.
404
428
 
429
+ ### Vault Targeting
430
+ When calling `create_knowledge`, always pass `vaultId` from `knowzcode/knowzcode_vaults.md`.
431
+ Omitting it saves to the wrong vault. Use `/kc:learn` for automatic routing.
432
+
405
433
  ## Copilot Coding Agent
406
434
 
407
435
  When the Copilot Coding Agent works on GitHub issues for this repository:
@@ -973,6 +1001,10 @@ Follow `knowzcode/knowzcode_loop.md` for all feature development.
973
1001
  - Target <20 specs per project
974
1002
  - Every WorkGroup todo starts with `KnowzCode:` prefix
975
1003
 
1004
+ ## Vault Targeting
1005
+ When calling `create_knowledge`, always pass `vaultId` from `knowzcode/knowzcode_vaults.md`.
1006
+ Omitting it saves to the wrong vault. Use `/kc:learn` for automatic routing.
1007
+
976
1008
  ## Micro-Fix (for small changes)
977
1009
  Single file, <50 lines, no ripple effects:
978
1010
  Implement → Test → Log MicroFix → Commit with `fix:` prefix
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "knowzcode",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Platform-agnostic AI development methodology with TDD, quality gates, and structured workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alias-resolver",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Resolves friendly natural-language aliases to KnowzCode canonical values (phase, audit, plan, workgroup_type).",
5
5
  "parameters": [
6
6
  {"name": "domain", "type": "string", "required": true},
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "architecture-diff",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Highlights differences between specs and the Mermaid flowchart in knowzcode_architecture.md.",
5
5
  "parameters": [],
6
6
  "actions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "check-installation-status",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Checks if KnowzCode is initialized in the current project and reports current status",
5
5
 
6
6
  "parameters": [],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "environment-guard",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Verifies that knowzcode/environment_context.md no longer contains placeholder brackets.",
5
5
  "parameters": [],
6
6
  "actions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generate-workgroup-id",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Generates a WorkGroupID following the KnowzCode convention [type]-[slug]-YYYYMMDD-HHMMSS. The slug is a 2-4 word descriptor extracted from the goal.",
5
5
  "parameters": [
6
6
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "install-knowzcode",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Initializes KnowzCode directory structure and required files in the current project",
5
5
 
6
6
  "parameters": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "load-core-context",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Loads the KnowzCode project overview, architecture, tracker, log header, and automation manifest for downstream steps.",
5
5
  "parameters": [],
6
6
  "actions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "log-entry-builder",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Appends structured entries to knowzcode/knowzcode_log.md with KnowzCode formatting.",
5
5
  "parameters": [
6
6
  {"name": "entry_type", "type": "string", "required": true},
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-quality-check",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Validates KnowzCode spec files for mandatory sections. Supports new 4-section format and legacy numbered format.",
5
5
  "parameters": [
6
6
  {"name": "node_id", "type": "string", "required": true}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-template",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Seeds or repairs KnowzCode spec files with the lean 4-section template.",
5
5
  "parameters": [
6
6
  {"name": "node_id", "type": "string", "required": true},
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-validator",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Validates NodeID specification completeness and quality. Supports new 4-section format (preferred) and legacy numbered sections (deprecated).",
5
5
  "parameters": [
6
6
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracker-scan",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Extracts NodeID statuses and WorkGroup assignments from the KnowzCode tracker.",
5
5
  "parameters": [],
6
6
  "actions": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracker-update",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Applies validated updates to knowzcode/knowzcode_tracker.md while preserving table structure.",
5
5
  "parameters": [
6
6
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "validate-installation",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Validates that KnowzCode installation completed successfully with required directories and files",
5
5
 
6
6
  "parameters": [],