vibe-coding-master 0.7.47 → 0.7.48

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.
@@ -1,4 +1,15 @@
1
1
  import { renderRoleMemoryRules } from "./role-memory.js";
2
+ import { GATE_ANALYSIS_FIELDS, GATE_ANALYSIS_HEADINGS } from "../../services/managed-artifact-validation.js";
3
+ function renderGateAnalysisSections() {
4
+ return Object.keys(GATE_ANALYSIS_HEADINGS)
5
+ .map((gate) => [
6
+ `<!-- Include ${GATE_ANALYSIS_HEADINGS[gate]} only for ${gate} gate. -->`,
7
+ `## ${GATE_ANALYSIS_HEADINGS[gate]}`,
8
+ "",
9
+ ...GATE_ANALYSIS_FIELDS[gate].map((field) => `- ${field}:`)
10
+ ].join("\n"))
11
+ .join("\n\n");
12
+ }
2
13
  export function renderReviewerAgentRules() {
3
14
  return `## Role
4
15
 
@@ -362,56 +373,7 @@ Summary: <one or two sentences>
362
373
  Use this findings structure:
363
374
 
364
375
  \`\`\`md
365
- <!-- Include Architecture Analysis only for architecture-plan gate. -->
366
- ## Architecture Analysis
367
-
368
- - Evidence Read:
369
- - Architecture Brief Fit:
370
- - End-To-End Flow:
371
- - Scope Fit:
372
- - Code Reality:
373
- - Invalidated Assumptions:
374
- - Existing-Class Completeness:
375
- - Ownership:
376
- - Data Flow:
377
- - Lifecycle:
378
- - Invariants:
379
- - Boundaries And Public Surface:
380
- - Failure Model:
381
- - Coder Readiness:
382
-
383
- <!-- Include Validation Analysis only for validation-adequacy gate. -->
384
- ## Validation Analysis
385
-
386
- - Evidence Read:
387
- - Changed Behavior And Risk:
388
- - Coverage Mapping:
389
- - Baseline Coverage:
390
- - L2 Integration Coverage:
391
- - L3 Trigger Assessment:
392
- - L3 End-To-End Coverage:
393
- - Boundary And Failure Coverage:
394
- - Public Contract Coverage:
395
- - Test Integrity:
396
- - Test Infrastructure:
397
- - Skips And Gaps:
398
- - User Approval And Gap Disposition:
399
- - Validation Readiness:
400
-
401
- <!-- Include Code Diff Analysis only for code-diff gate. -->
402
- ## Code Diff Analysis
403
-
404
- - Commit Range And Sources:
405
- - Evidence Read:
406
- - Changed Files And Symbols:
407
- - Changed Behavior:
408
- - Source Evidence Fit:
409
- - Callers And Public Surface:
410
- - State Lifecycle And Failure Paths:
411
- - Coding Standards:
412
- - Baseline Test Integrity:
413
- - Generated Context And Durable Docs:
414
- - Code Readiness:
376
+ ${renderGateAnalysisSections()}
415
377
 
416
378
  ## Findings
417
379
 
@@ -430,54 +392,7 @@ Use this findings structure:
430
392
  If there are no findings, write:
431
393
 
432
394
  \`\`\`md
433
- <!-- Include Architecture Analysis only for architecture-plan gate. -->
434
- ## Architecture Analysis
435
-
436
- - Evidence Read:
437
- - Architecture Brief Fit:
438
- - End-To-End Flow:
439
- - Scope Fit:
440
- - Code Reality:
441
- - Ownership:
442
- - Data Flow:
443
- - Lifecycle:
444
- - Invariants:
445
- - Boundaries And Public Surface:
446
- - Failure Model:
447
- - Coder Readiness:
448
-
449
- <!-- Include Validation Analysis only for validation-adequacy gate. -->
450
- ## Validation Analysis
451
-
452
- - Evidence Read:
453
- - Changed Behavior And Risk:
454
- - Coverage Mapping:
455
- - Baseline Coverage:
456
- - L2 Integration Coverage:
457
- - L3 Trigger Assessment:
458
- - L3 End-To-End Coverage:
459
- - Boundary And Failure Coverage:
460
- - Public Contract Coverage:
461
- - Test Integrity:
462
- - Test Infrastructure:
463
- - Skips And Gaps:
464
- - User Approval And Gap Disposition:
465
- - Validation Readiness:
466
-
467
- <!-- Include Code Diff Analysis only for code-diff gate. -->
468
- ## Code Diff Analysis
469
-
470
- - Commit Range And Sources:
471
- - Evidence Read:
472
- - Changed Files And Symbols:
473
- - Changed Behavior:
474
- - Source Evidence Fit:
475
- - Callers And Public Surface:
476
- - State Lifecycle And Failure Paths:
477
- - Coding Standards:
478
- - Baseline Test Integrity:
479
- - Generated Context And Durable Docs:
480
- - Code Readiness:
395
+ ${renderGateAnalysisSections()}
481
396
 
482
397
  ## Findings
483
398
 
@@ -38,7 +38,7 @@ Use this structure:
38
38
  - Evidence: <file paths, command names, logs, or repeated failure pattern>
39
39
  - Suspected harness area: <skill, role definition, tool, routing, validation, bootstrap, or managed instruction>
40
40
  - Impact: <who is affected and how>
41
- - Urgency: low | medium | high
41
+ - Urgency: low|medium|high
42
42
  \`\`\`
43
43
 
44
44
  ## Constraints
@@ -214,7 +214,62 @@ export const ARTIFACT_DEFINITIONS = [
214
214
  ]
215
215
  }
216
216
  ];
217
+ export const DYNAMIC_ARTIFACT_DEFINITIONS = [
218
+ {
219
+ kind: "route-message",
220
+ storage: "dynamic",
221
+ owner: ["project-manager", "architect", "coder", "tester"],
222
+ requiredHeadings: [],
223
+ allowedModes: ["final"]
224
+ },
225
+ {
226
+ kind: "coder-worker-report",
227
+ storage: "dynamic",
228
+ owner: "coder",
229
+ requiredHeadings: [
230
+ "Assigned Scope",
231
+ "Item Dispositions",
232
+ "Files Changed",
233
+ "Tests Added Or Updated",
234
+ "L0/L1 Checks",
235
+ "Commit",
236
+ "Skipped Assigned Checks",
237
+ "Objective Failures"
238
+ ],
239
+ allowedModes: ["final"]
240
+ },
241
+ {
242
+ kind: "gate-review-report",
243
+ storage: "dynamic",
244
+ owner: "reviewer",
245
+ requiredHeadings: ["Findings"],
246
+ allowedModes: ["final"]
247
+ },
248
+ {
249
+ kind: "memory-proposal",
250
+ storage: "dynamic",
251
+ owner: ["project-manager", "architect", "coder", "tester", "reviewer"],
252
+ requiredHeadings: ["Add", "Update", "Remove"],
253
+ allowedModes: ["final"]
254
+ },
255
+ {
256
+ kind: "harness-feedback",
257
+ storage: "dynamic",
258
+ owner: ["project-manager", "architect", "coder", "tester", "reviewer"],
259
+ requiredHeadings: [],
260
+ allowedModes: ["final"]
261
+ }
262
+ ];
263
+ export const MANAGED_ARTIFACT_DEFINITIONS = [
264
+ ...ARTIFACT_DEFINITIONS.map((definition) => ({
265
+ ...definition,
266
+ storage: "handoff",
267
+ allowedModes: definition.kind === "workflow-progress" ? ["final"] : ["draft", "final"]
268
+ })),
269
+ ...DYNAMIC_ARTIFACT_DEFINITIONS
270
+ ];
217
271
  const DEFINITION_BY_KIND = new Map(ARTIFACT_DEFINITIONS.map((definition) => [definition.kind, definition]));
272
+ const MANAGED_DEFINITION_BY_KIND = new Map(MANAGED_ARTIFACT_DEFINITIONS.map((definition) => [definition.kind, definition]));
218
273
  export function getArtifactDefinition(kind) {
219
274
  const definition = DEFINITION_BY_KIND.get(kind);
220
275
  if (!definition) {
@@ -225,3 +280,16 @@ export function getArtifactDefinition(kind) {
225
280
  export function isArtifactKind(value) {
226
281
  return DEFINITION_BY_KIND.has(value);
227
282
  }
283
+ export function getManagedArtifactDefinition(kind) {
284
+ const definition = MANAGED_DEFINITION_BY_KIND.get(kind);
285
+ if (!definition) {
286
+ throw new Error(`Unknown managed artifact kind: ${kind}`);
287
+ }
288
+ return definition;
289
+ }
290
+ export function isDynamicArtifactKind(value) {
291
+ return DYNAMIC_ARTIFACT_DEFINITIONS.some((definition) => definition.kind === value);
292
+ }
293
+ export function isManagedArtifactKind(value) {
294
+ return MANAGED_DEFINITION_BY_KIND.has(value);
295
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-coding-master",
3
- "version": "0.7.47",
3
+ "version": "0.7.48",
4
4
  "description": "Local GUI session cockpit for Claude Code role sessions.",
5
5
  "type": "module",
6
6
  "files": [
@@ -10,40 +10,11 @@ import urllib.error
10
10
  import urllib.parse
11
11
  import urllib.request
12
12
 
13
- KINDS = (
14
- "architecture-brief",
15
- "architecture-evidence",
16
- "planning-progress",
17
- "architecture-plan",
18
- "known-issues",
19
- "coder-completion",
20
- "architect-debug",
21
- "architecture-diagnosis",
22
- "test-report",
23
- "docs-update-report",
24
- "docs-sync-report",
25
- "workflow-progress",
26
- "final-acceptance",
27
- "route-message",
28
- "coder-worker-report",
29
- "gate-review-report",
30
- "memory-proposal",
31
- "harness-feedback",
32
- )
33
- DYNAMIC_KINDS = {
34
- "route-message",
35
- "coder-worker-report",
36
- "gate-review-report",
37
- "memory-proposal",
38
- "harness-feedback",
39
- }
40
-
41
-
42
13
  def parse_args() -> argparse.Namespace:
43
14
  parser = argparse.ArgumentParser(
44
15
  description="Validate and atomically write a VCM-managed artifact."
45
16
  )
46
- parser.add_argument("kind", choices=KINDS)
17
+ parser.add_argument("kind", help="VCM-managed artifact kind.")
47
18
  parser.add_argument("--file", required=True, help="Candidate Markdown file.")
48
19
  parser.add_argument("--mode", choices=("draft", "final"), default="final")
49
20
  parser.add_argument(
@@ -89,10 +60,6 @@ def error_text(raw: str) -> str:
89
60
 
90
61
  def main() -> int:
91
62
  args = parse_args()
92
- if args.kind in DYNAMIC_KINDS and not args.path:
93
- fail(f"--path is required for {args.kind}.")
94
- if args.kind not in DYNAMIC_KINDS and args.path:
95
- fail(f"--path is not allowed for fixed artifact kind {args.kind}.")
96
63
 
97
64
  candidate = Path(args.file).expanduser()
98
65
  if not candidate.is_file():