@kontourai/flow-agents 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/build/src/builder-flow-run-adapter.d.ts +22 -2
- package/build/src/builder-flow-run-adapter.js +93 -28
- package/build/src/builder-flow-runtime.d.ts +8 -3
- package/build/src/builder-flow-runtime.js +308 -47
- package/build/src/cli/assignment-provider.d.ts +4 -7
- package/build/src/cli/assignment-provider.js +67 -13
- package/build/src/cli/builder-run.js +14 -18
- package/build/src/cli/workflow-sidecar.d.ts +28 -4
- package/build/src/cli/workflow-sidecar.js +801 -97
- package/build/src/cli/workflow.js +290 -42
- package/build/src/flow-kit/validate.d.ts +17 -0
- package/build/src/flow-kit/validate.js +340 -2
- package/build/src/index.js +5 -5
- package/build/src/lib/observed-command.d.ts +7 -0
- package/build/src/lib/observed-command.js +100 -0
- package/build/src/tools/generate-context-map.js +5 -3
- package/context/scripts/hooks/lib/kit-catalog.js +1 -1
- package/context/scripts/hooks/stop-goal-fit.js +78 -9
- package/docs/context-map.md +22 -20
- package/docs/developer-architecture.md +1 -1
- package/docs/public-workflow-cli.md +76 -7
- package/docs/skills-map.md +51 -27
- package/docs/spec/builder-flow-runtime.md +41 -40
- package/docs/workflow-usage-guide.md +109 -42
- package/evals/fixtures/hook-influence/cases.json +2 -2
- package/evals/integration/test_builder_entry_enforcement.sh +52 -41
- package/evals/integration/test_builder_step_producers.sh +297 -6
- package/evals/integration/test_bundle_install.sh +212 -63
- package/evals/integration/test_critique_supersession_roundtrip.sh +21 -8
- package/evals/integration/test_current_json_per_actor.sh +12 -0
- package/evals/integration/test_dual_emit_flow_step.sh +62 -43
- package/evals/integration/test_flowdef_session_activation.sh +145 -25
- package/evals/integration/test_flowdef_session_history_preservation.sh +23 -21
- package/evals/integration/test_gate_lockdown.sh +3 -5
- package/evals/integration/test_goal_fit_hook.sh +60 -2
- package/evals/integration/test_liveness_verdict.sh +14 -17
- package/evals/integration/test_phase_map_and_gate_claim.sh +63 -38
- package/evals/integration/test_public_workflow_cli.sh +325 -11
- package/evals/integration/test_pull_work_liveness_preflight.sh +22 -66
- package/evals/integration/test_sidecar_field_preservation.sh +36 -11
- package/evals/integration/test_workflow_sidecar_writer.sh +277 -44
- package/evals/integration/test_workflow_steering_hook.sh +15 -38
- package/evals/run.sh +2 -0
- package/evals/static/test_builder_skill_coherence.sh +247 -0
- package/evals/static/test_library_exports.sh +5 -2
- package/evals/static/test_workflow_skills.sh +13 -325
- package/kits/builder/flows/build.flow.json +22 -0
- package/kits/builder/flows/shape.flow.json +9 -9
- package/kits/builder/kit.json +70 -16
- package/kits/builder/skills/builder-shape/SKILL.md +75 -75
- package/kits/builder/skills/continue-work/SKILL.md +45 -106
- package/kits/builder/skills/deliver/SKILL.md +96 -442
- package/kits/builder/skills/design-probe/SKILL.md +40 -139
- package/kits/builder/skills/evidence-gate/SKILL.md +59 -201
- package/kits/builder/skills/execute-plan/SKILL.md +54 -125
- package/kits/builder/skills/fix-bug/SKILL.md +42 -132
- package/kits/builder/skills/gate-review/SKILL.md +60 -211
- package/kits/builder/skills/idea-to-backlog/SKILL.md +63 -244
- package/kits/builder/skills/learning-review/SKILL.md +63 -170
- package/kits/builder/skills/pickup-probe/SKILL.md +54 -111
- package/kits/builder/skills/plan-work/SKILL.md +51 -185
- package/kits/builder/skills/pull-work/SKILL.md +136 -485
- package/kits/builder/skills/release-readiness/SKILL.md +66 -107
- package/kits/builder/skills/review-work/SKILL.md +89 -176
- package/kits/builder/skills/tdd-workflow/SKILL.md +53 -147
- package/kits/builder/skills/verify-work/SKILL.md +101 -113
- package/package.json +2 -2
- package/scripts/hooks/lib/kit-catalog.js +1 -1
- package/scripts/hooks/stop-goal-fit.js +78 -9
- package/src/builder-flow-run-adapter.ts +118 -32
- package/src/builder-flow-runtime.ts +331 -61
- package/src/cli/assignment-provider-lock.test.mjs +83 -0
- package/src/cli/assignment-provider.ts +62 -13
- package/src/cli/builder-flow-run-adapter.test.mjs +4 -2
- package/src/cli/builder-flow-runtime.test.mjs +194 -8
- package/src/cli/builder-run.ts +3 -9
- package/src/cli/kit-metadata-security.test.mjs +232 -6
- package/src/cli/public-api.test.mjs +15 -0
- package/src/cli/workflow-sidecar-execution-proof.test.mjs +90 -0
- package/src/cli/workflow-sidecar.ts +724 -97
- package/src/cli/workflow.ts +277 -40
- package/src/flow-kit/validate.ts +320 -2
- package/src/index.ts +6 -5
- package/src/lib/observed-command.ts +96 -0
- package/src/tools/generate-context-map.ts +5 -3
|
@@ -70,6 +70,7 @@ MAP="$ROOT/docs/skills-map.md"
|
|
|
70
70
|
ROOT_CONTEXT="$ROOT/CONTEXT.md"
|
|
71
71
|
CONTEXT_MAP="$ROOT/docs/context-map.md"
|
|
72
72
|
USAGE_GUIDE="$ROOT/docs/workflow-usage-guide.md"
|
|
73
|
+
PUBLIC_WORKFLOW_CLI="$ROOT/docs/public-workflow-cli.md"
|
|
73
74
|
EVAL_STRATEGY="$ROOT/docs/workflow-eval-strategy.md"
|
|
74
75
|
SHARED_CONTRACTS_DOC="$ROOT/docs/workflow-shared-contracts.md"
|
|
75
76
|
ARTIFACT_LIFECYCLE_DOC="$ROOT/docs/workflow-artifact-lifecycle.md"
|
|
@@ -170,9 +171,6 @@ require_file "$EXECUTE_PLAN" "execute-plan skill"
|
|
|
170
171
|
require_file "$REVIEW_WORK" "review-work skill"
|
|
171
172
|
require_file "$VERIFY_WORK" "verify-work skill"
|
|
172
173
|
require_file "$GATE_REVIEW" "gate-review skill"
|
|
173
|
-
require_text "$GATE_REVIEW" 'advisory' "gate-review skill marks proposals as advisory"
|
|
174
|
-
reject_text "$GATE_REVIEW" 'auto_applied\|auto-apply' "gate-review skill does not auto-apply fixes"
|
|
175
|
-
require_text "$GATE_REVIEW" 'trust\.bundle' "gate-review skill references trust.bundle input"
|
|
176
174
|
require_file "$MAP" "skills map"
|
|
177
175
|
require_file "$ROOT_CONTEXT" "Flow Agents context glossary"
|
|
178
176
|
require_file "$CONTEXT_MAP" "context map"
|
|
@@ -340,43 +338,6 @@ require_text "$FLOW_AGENTS_FLOW_ADR" 'Veritas remains an optional development go
|
|
|
340
338
|
|
|
341
339
|
echo ""
|
|
342
340
|
echo "--- contract wiring ---"
|
|
343
|
-
require_text "$PLAN_WORK" 'context/contracts/planning-contract.md' "plan-work references planning contract"
|
|
344
|
-
require_text "$PLAN_WORK" 'context/contracts/artifact-contract.md' "plan-work references artifact contract"
|
|
345
|
-
require_text "$DELIVER" 'context/contracts/delivery-contract.md' "deliver references delivery contract"
|
|
346
|
-
require_text "$DELIVER" 'context/contracts/verification-contract.md' "deliver references verification contract"
|
|
347
|
-
require_text "$PULL" 'context/contracts/sandbox-policy.md' "pull-work references sandbox policy contract"
|
|
348
|
-
require_text "$PULL" 'context/contracts/work-item-contract.md' "pull-work references work item contract"
|
|
349
|
-
require_text "$PULL" 'WorkItemProvider' "pull-work uses work item provider role"
|
|
350
|
-
require_text "$PULL" 'BoardProvider' "pull-work uses board provider role"
|
|
351
|
-
require_text "$PULL" 'Do not implement provider settings, provider configuration, or configured-provider discovery' "pull-work avoids provider settings and discovery implementation"
|
|
352
|
-
require_text "$PULL" 'npm run effective-backlog-settings' "pull-work checks effective backlog settings"
|
|
353
|
-
require_text "$PULL" 'status: configured' "pull-work consumes configured provider settings"
|
|
354
|
-
require_text "$PULL" 'status: ask_user' "pull-work asks for providers when settings are absent"
|
|
355
|
-
require_text "$PULL" 'npm run pull-work-provider' "pull-work normalizes provider items"
|
|
356
|
-
require_text "$PULL" 'related-only' "pull-work classifies related-only items"
|
|
357
|
-
require_text "$PULL" 'flow validate-definition <path> --json' "pull-work delegates Flow Definition validation to Flow"
|
|
358
|
-
require_text "$PULL" 'fetch the latest target ref' "pull-work requires latest target ref fetch before freshness checks"
|
|
359
|
-
require_text "$PULL" 'compare the current target SHA to the work item.*planned_base_sha' "pull-work compares current target SHA to planned_base_sha"
|
|
360
|
-
require_text "$PULL" 'commits-since' "pull-work records commits-since"
|
|
361
|
-
require_text "$PULL" 'planned age' "pull-work records planned age"
|
|
362
|
-
require_text "$PULL" 'changed-file intersections with `planning_scope_refs`' "pull-work records planning scope intersections"
|
|
363
|
-
require_text "$PULL" 'Classify revision freshness as' "pull-work classifies revision freshness"
|
|
364
|
-
require_text "$PULL" '`fresh`' "pull-work documents fresh classification"
|
|
365
|
-
require_text "$PULL" '`drifted`' "pull-work documents drifted classification"
|
|
366
|
-
require_text "$PULL" '`stale`' "pull-work documents stale classification"
|
|
367
|
-
require_text "$PULL" '`stale`.*route back to `idea-to-backlog`' "pull-work routes stale freshness to idea-to-backlog"
|
|
368
|
-
require_text "$PULL" 'Missing `planned_base_sha` is not fresh' "pull-work preserves missing planned_base_sha gap"
|
|
369
|
-
require_text "$PULL" 'NOT_VERIFIED.*accepted-gap baseline' "pull-work records missing baseline as NOT_VERIFIED or accepted gap"
|
|
370
|
-
require_text "$PLAN_WORK" 'revision_freshness' "plan-work consumes upstream revision freshness"
|
|
371
|
-
require_text "$PLAN_WORK" 'current target ref/SHA' "plan-work requires latest target ref/SHA confirmation"
|
|
372
|
-
require_text "$PLAN_WORK" 'accepted-gap baseline for missing historical `planned_base_sha`' "plan-work allows accepted-gap missing planned_base_sha baseline"
|
|
373
|
-
require_text "$PLAN_WORK" 'Missing `planned_base_sha` is never fresh' "plan-work does not treat missing planned_base_sha as fresh"
|
|
374
|
-
require_text "$PLAN_WORK" 'baseline freshness is missing or `NOT_VERIFIED`, record the gap and stop planning unless it has been explicitly accepted as a fallback baseline naming the current target ref/SHA plus provider history or equivalent' "plan-work blocks unresolved baseline freshness"
|
|
375
|
-
require_text "$PLAN_WORK" '`stale`.*route.*`idea-to-backlog`' "plan-work routes stale provider-backed work back to idea-to-backlog"
|
|
376
|
-
require_text "$PLAN_WORK" 'structured evidence ref object' "plan-work requires structured evidence refs"
|
|
377
|
-
require_text "$PLAN_WORK" 'Acceptance Evidence' "plan-work requires Acceptance Evidence comments"
|
|
378
|
-
require_text "$PLAN_WORK" 'each upstream AC id revalidated against drift' "plan-work requires AC revalidation against drift"
|
|
379
|
-
require_text "$PLAN_WORK" 'stale assumptions' "plan-work requires stale assumption findings"
|
|
380
341
|
require_text "$PLANNING_CONTRACT" 'Baseline and AC revalidation' "planning contract defines baseline and AC revalidation section"
|
|
381
342
|
require_text "$PLANNING_CONTRACT" 'Current target.*latest target ref/SHA' "planning contract records latest target ref/SHA"
|
|
382
343
|
require_text "$PLANNING_CONTRACT" 'revision_freshness' "planning contract records source freshness"
|
|
@@ -416,16 +377,12 @@ require_text "$BACKLOG_PROVIDER_SETTINGS" '"owner": "kontourai"' "repo backlog s
|
|
|
416
377
|
require_text "$BACKLOG_PROVIDER_SETTINGS" '"name": "flow-agents"' "repo backlog settings use flow-agents repo"
|
|
417
378
|
require_text "$BACKLOG_PROVIDER_SETTINGS" '"number": 1' "repo backlog settings use GitHub Project 1"
|
|
418
379
|
require_text "$BACKLOG_PROVIDER_SETTINGS" '"prefer_finishing_active_work": true' "repo backlog settings include WIP policy"
|
|
419
|
-
require_text "$PLAN_WORK" 'context/contracts/sandbox-policy.md' "plan-work references sandbox policy contract"
|
|
420
380
|
require_text "$EXECUTION_CONTRACT" 'context/contracts/sandbox-policy.md' "execution contract references sandbox policy contract"
|
|
421
|
-
require_text "$EVIDENCE" 'context/contracts/governance-adapter-contract.md' "evidence-gate references governance adapter contract"
|
|
422
381
|
require_text "$VERIFICATION_CONTRACT" 'context/contracts/governance-adapter-contract.md' "verification contract references governance adapter contract"
|
|
423
382
|
require_text "$SANDBOX_DOC" 'context/contracts/sandbox-policy.md' "sandbox doc links canonical contract"
|
|
424
383
|
require_text "$VERITAS_DOC" 'Veritas owns repo-local standards, authority, and evidence-check semantics' "Veritas doc defines ownership boundary"
|
|
425
384
|
require_text "$ROOT/docs/north-star.md" 'Flow owns generic process transparency' "north star defines Flow ownership"
|
|
426
385
|
require_text "$VERITAS_DOC" 'standard_refs' "Veritas doc maps output to evidence refs"
|
|
427
|
-
require_text "$VERIFY_WORK" 'context/contracts/verification-contract.md' "verify-work references verification contract"
|
|
428
|
-
require_text "$VERIFY_WORK" 'context/contracts/artifact-contract.md' "verify-work references artifact contract"
|
|
429
386
|
require_text "$TOOL_PLANNER" 'context/contracts/planning-contract.md' "tool-planner references planning contract"
|
|
430
387
|
require_text "$TOOL_WORKER" 'context/contracts/execution-contract.md' "tool-worker references execution contract"
|
|
431
388
|
require_text "$TOOL_VERIFIER" 'context/contracts/verification-contract.md' "tool-verifier references verification contract"
|
|
@@ -441,29 +398,6 @@ require_text "$PACKAGE_MANIFEST" 'name exact delegate ids' "Codex builder profil
|
|
|
441
398
|
|
|
442
399
|
echo ""
|
|
443
400
|
echo "--- delivery goal fit ---"
|
|
444
|
-
require_text "$PLAN_WORK" 'Definition Of Done' "plan-work requires Definition Of Done"
|
|
445
|
-
require_text "$PLAN_WORK" 'Stop-short risks' "plan-work captures stop-short risks"
|
|
446
|
-
require_text "$PLAN_WORK" 'Durable docs target' "plan-work captures durable docs target"
|
|
447
|
-
require_text "$DELIVER" 'Goal Fit Gate' "deliver requires Goal Fit Gate"
|
|
448
|
-
require_text "$DELIVER" 'Final Acceptance' "deliver requires Final Acceptance"
|
|
449
|
-
require_text "$DELIVER" 'Required Preflight' "deliver defines pull/pickup preflight"
|
|
450
|
-
require_text "$DELIVER" 'pull-work -> pickup-probe' "deliver routes missing pickup evidence through pull-work and pickup-probe"
|
|
451
|
-
require_text "$DELIVER" 'continue automatically to execution' "deliver can proceed autonomously after planning"
|
|
452
|
-
require_text "$DELIVER" '\.kontourai/flow-agents/<slug>/archive' "deliver archives working artifacts"
|
|
453
|
-
require_text "$DELIVER" 'Do not skip learning just because the delivery looked clean' "deliver always routes terminal closeout through learning-review"
|
|
454
|
-
require_text "$DELIVER" 'Sidecar Writer Adoption' "deliver owns sidecar writer adoption"
|
|
455
|
-
require_text "$DELIVER" 'record-critique|import-critique' "deliver records critique through sidecar writer"
|
|
456
|
-
require_text "$VERIFY_WORK" 'Goal Fit' "verify-work reports Goal Fit"
|
|
457
|
-
require_text "$VERIFY_WORK" 'A technically green build is not enough' "verify-work rejects task-only pass"
|
|
458
|
-
require_text "$VERIFY_WORK" 'criteria\[\]\.evidence_refs.*structured evidence refs' "verify-work requires structured acceptance evidence refs"
|
|
459
|
-
require_text "$VERIFY_WORK" 'checks\[\]\.artifact_refs.*structured evidence ref objects' "verify-work requires structured artifact refs"
|
|
460
|
-
require_text "$VERIFY_WORK" 'prose-only behavior claims' "verify-work rejects prose-only behavior evidence"
|
|
461
|
-
require_text "$PLAN_WORK" 'not optional ceremony' "plan-work treats sidecars as required when writer exists"
|
|
462
|
-
require_text "$EXECUTE_PLAN" 'do not mark execution as cleanly complete' "execute-plan records sidecar write blockers"
|
|
463
|
-
require_text "$VERIFY_WORK" 'Do not convert verifier output into `PASS` without structured evidence' "verify-work preserves structured evidence gate"
|
|
464
|
-
require_text "$RELEASE" 'keep the release decision as `HOLD`' "release-readiness preserves blocked release sidecars"
|
|
465
|
-
require_text "$RELEASE" 'record the sidecar-write or validation blocker as a `NOT_VERIFIED` evidence gap' "release-readiness records blocked writer as evidence gap"
|
|
466
|
-
require_text "$LEARNING" 'keep the learning verdict at `FOLLOWUP_REQUIRED` or `BLOCKED`' "learning-review preserves blocked learning sidecars"
|
|
467
401
|
require_text "$GOAL_FIT_HOOK" 'FLOW_AGENTS_GOAL_FIT_STRICT' "goal-fit hook supports strict mode"
|
|
468
402
|
require_text "$GOAL_FIT_HOOK" 'Definition Of Done' "goal-fit hook checks Definition Of Done"
|
|
469
403
|
require_text "$GOAL_FIT_HOOK" 'Goal Fit Gate' "goal-fit hook checks Goal Fit Gate"
|
|
@@ -537,7 +471,7 @@ require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass requires critique when
|
|
|
537
471
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass rejects bad explicit artifact dirs' "sidecar writer integration covers dogfood artifact-dir validation"
|
|
538
472
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass rejects invalid critique JSON before partial evidence writes' "sidecar writer integration covers dogfood parse fail-closed behavior"
|
|
539
473
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass rejects failing required critique before partial evidence writes' "sidecar writer integration covers dogfood semantic fail-closed behavior"
|
|
540
|
-
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass
|
|
474
|
+
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass ignores a dirty legacy critique.json and records a clean bundle critique' "sidecar writer integration proves trust.bundle-only critique behavior"
|
|
541
475
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass records failed evidence and failing critique for routing' "sidecar writer integration covers honest failed dogfood records"
|
|
542
476
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass preserves NOT_VERIFIED evidence' "sidecar writer integration covers dogfood pass not verified routing"
|
|
543
477
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'dogfood-pass release readiness requires clean critique' "sidecar writer integration covers release critique gate"
|
|
@@ -548,7 +482,7 @@ require_text "$SIDECAR_WRITER_INTEGRATION" 'does not advance state after invalid
|
|
|
548
482
|
require_text "$SIDECAR_WRITER_INTEGRATION" 'does not archive state after invalid learning semantics' "sidecar writer integration guards learning state ordering"
|
|
549
483
|
require_text "$CONTEXT_MAP_INTEGRATION" 'context map is current' "context map integration covers drift"
|
|
550
484
|
require_text "$CONTEXT_MAP_INTEGRATION" 'context map generation is deterministic' "context map integration covers deterministic generation"
|
|
551
|
-
require_text "$WORKFLOW_STEERING_INTEGRATION" 'workflow steering
|
|
485
|
+
require_text "$WORKFLOW_STEERING_INTEGRATION" 'workflow steering fixture relies on trust.bundle, not a retired critique sidecar' "workflow steering integration covers bundle-only critique handling"
|
|
552
486
|
require_text "$WORKFLOW_STEERING_INTEGRATION" 'workflow steering hook appends context-map recovery guidance' "workflow steering integration covers context-map guidance"
|
|
553
487
|
require_text "$WORKFLOW_STEERING_INTEGRATION" 'workflow steering hook emits ambient state guidance at user prompt submit' "workflow steering integration covers ambient state guidance"
|
|
554
488
|
require_text "$WORKFLOW_STEERING_INTEGRATION" 'Claude hook adapter surfaces Builder workflow route for coding prompts' "workflow steering integration covers Claude Builder-route prompt guidance"
|
|
@@ -565,106 +499,12 @@ require_text "$HOOK_INFLUENCE_VALIDATOR" 'missing runtime coverage' "hook influe
|
|
|
565
499
|
|
|
566
500
|
echo ""
|
|
567
501
|
echo "--- builder-shape ---"
|
|
568
|
-
require_text "$BUILDER_SHAPE" '^name: "builder-shape"$' "frontmatter name"
|
|
569
|
-
require_text "$BUILDER_SHAPE" 'Builder Kit `shape` flow' "defines Builder Kit shape product surface"
|
|
570
|
-
require_text "$BUILDER_SHAPE" 'kits/builder/skills/idea-to-backlog/SKILL.md' "delegates to idea-to-backlog"
|
|
571
|
-
require_text "$BUILDER_SHAPE" 'kits/builder/flows/shape.flow.json' "links Builder Kit Flow Definition"
|
|
572
|
-
require_text "$BUILDER_SHAPE" 'raw idea.*current conversation context|current conversation context.*raw idea' "accepts raw idea or conversation context"
|
|
573
|
-
require_text "$BUILDER_SHAPE" 'Probe/alignment' "uses Probe alignment language"
|
|
574
|
-
require_text "$BUILDER_SHAPE" 'Proactive suggestion' "builder-shape is suggested for feature/product planning"
|
|
575
|
-
require_text "$BUILDER_SHAPE" 'design-probe.*idea-to-backlog|idea-to-backlog.*design-probe' "builder-shape chains design-probe and idea-to-backlog"
|
|
576
|
-
require_text "$BUILDER_SHAPE" 'stop at the backlog gate by default|Stop at `next_gate: Backlog Gate`' "stops at backlog gate by default"
|
|
577
|
-
require_text "$BUILDER_SHAPE" 'Issue sync is explicit-only' "requires explicit issue sync"
|
|
578
|
-
require_text "$BUILDER_SHAPE" 'Direct `idea-to-backlog` usage remains valid' "preserves direct idea-to-backlog use"
|
|
579
|
-
require_text "$BUILDER_SHAPE" 'source_ideas' "requires standard source ideas section"
|
|
580
|
-
require_text "$BUILDER_SHAPE" 'idea_inventory' "requires standard idea inventory section"
|
|
581
|
-
require_text "$BUILDER_SHAPE" 'slice_candidates' "requires standard slice candidates section"
|
|
582
|
-
require_text "$BUILDER_SHAPE" 'dependency_map' "requires standard dependency map section"
|
|
583
|
-
require_text "$BUILDER_SHAPE" 'shaped_work' "requires standard shaped work section"
|
|
584
|
-
require_text "$BUILDER_SHAPE" 'risk_release_notes' "requires standard risk release notes section"
|
|
585
|
-
require_text "$BUILDER_SHAPE" 'open_questions' "requires standard open questions section"
|
|
586
|
-
require_text "$BUILDER_SHAPE" 'next_gate' "requires standard next gate section"
|
|
587
502
|
|
|
588
503
|
echo ""
|
|
589
504
|
echo "--- idea-to-backlog ---"
|
|
590
|
-
require_text "$IDEA" '^name: "idea-to-backlog"$' "frontmatter name"
|
|
591
|
-
require_text "$IDEA" 'Do not write production code' "forbids production implementation"
|
|
592
|
-
require_text "$IDEA" 'Do not invoke downstream delivery skills' "keeps upstream separate from delivery"
|
|
593
|
-
require_text "$IDEA" 'After the backlog gate, hand off to `pull-work` only if the user explicitly asks to continue' "allows explicit gated handoff"
|
|
594
|
-
require_text "$IDEA" 'GitHub issues' "uses GitHub issues as executable backlog"
|
|
595
|
-
require_text "$IDEA" 'thinnest meaningful slice' "requires thinnest meaningful slice"
|
|
596
|
-
require_text "$IDEA" 'bundle justification' "requires bundle justification for grouped work"
|
|
597
|
-
require_text "$IDEA" 'dependency map' "requires dependency mapping"
|
|
598
|
-
require_text "$IDEA" 'Push back|push back' "pushes back on blended ideas"
|
|
599
|
-
require_text "$IDEA" 'Backlog Gate' "defines backlog gate"
|
|
600
|
-
require_text "$IDEA" 'flow-agents:work-item-metadata' "documents work-item metadata marker"
|
|
601
|
-
require_text "$IDEA" 'planned_base_ref' "documents planned_base_ref"
|
|
602
|
-
require_text "$IDEA" 'planned_base_sha' "documents planned_base_sha"
|
|
603
|
-
require_text "$IDEA" 'planned_at' "documents planned_at"
|
|
604
|
-
require_text "$IDEA" 'planning_artifact_ref' "documents planning_artifact_ref"
|
|
605
|
-
require_text "$IDEA" 'planning_scope_refs' "documents planning_scope_refs"
|
|
606
|
-
require_text "$IDEA" 'source_revisions' "documents repo-scoped source_revisions"
|
|
607
|
-
require_text "$IDEA" 'structured .*blockers\[\]' "documents structured blockers array"
|
|
608
|
-
require_text "$IDEA" 'Dependencies / Blockers' "preserves human-readable dependencies/blockers prose"
|
|
609
|
-
require_text "$IDEA" 'provider-neutral structured metadata marker' "keeps marker guidance provider-neutral"
|
|
610
|
-
require_text "$IDEA" 'outside the generic skill contract' "keeps native provider dependency APIs adapter-specific"
|
|
611
|
-
require_text "$IDEA" 'Acceptance Evidence' "idea-to-backlog requires Acceptance Evidence issue expectation"
|
|
612
|
-
require_text "$IDEA" 'immutable GitHub blob permalinks pinned to commit SHA' "idea-to-backlog expects immutable source permalinks"
|
|
613
505
|
|
|
614
506
|
echo ""
|
|
615
507
|
echo "--- pull-work ---"
|
|
616
|
-
require_text "$PULL" '^name: "pull-work"$' "frontmatter name"
|
|
617
|
-
require_text "$PULL" 'Do not implement code' "forbids implementation"
|
|
618
|
-
require_text "$PULL" 'WIP' "enforces WIP awareness"
|
|
619
|
-
require_text "$PULL" 'worktree' "records worktree isolation decision"
|
|
620
|
-
require_text "$PULL" 'thinnest meaningful slice' "checks selected slice size"
|
|
621
|
-
require_text "$PULL" 'bundle justification' "checks issue-group bundle justification"
|
|
622
|
-
require_text "$PULL" 'plan-work' "hands off to plan-work"
|
|
623
|
-
require_text "$PULL" 'Cross-Repo Ranking And Selection' "pull-work documents cross-repo ranking"
|
|
624
|
-
require_text "$PULL" 'provider-neutral cross-repo ranking' "pull-work ranks across repos provider-neutrally"
|
|
625
|
-
require_text "$PULL" '`selected_scope`' "pull-work output contract records selected scope"
|
|
626
|
-
require_text "$PULL" '`priority_rationale`' "pull-work output contract records priority rationale"
|
|
627
|
-
require_text "$PULL" '`dependencies`' "pull-work output contract records dependencies"
|
|
628
|
-
require_text "$PULL" '`wip_conflict_notes`' "pull-work output contract records WIP/conflict notes"
|
|
629
|
-
require_text "$PULL" '`alignment_questions`' "pull-work output contract records alignment questions"
|
|
630
|
-
require_text "$PULL" 'selected_item_ids' "pull-work records selected item correlation ids"
|
|
631
|
-
require_text "$PULL" 'shepherding_item_ids' "pull-work records shepherding item correlation ids"
|
|
632
|
-
require_text "$PULL" 'backlog_gap=true' "pull-work records backlog gaps explicitly"
|
|
633
|
-
require_text "$PULL" 'local backlog artifact' "pull-work supports local backlog artifact refs"
|
|
634
|
-
require_text "$PULL" 'route to `idea-to-backlog`' "pull-work routes backlog gaps to idea-to-backlog"
|
|
635
|
-
require_text "$PULL" 'Work Item Group selection requires explicit justification' "pull-work requires explicit Work Item Group justification"
|
|
636
|
-
require_text "$PULL" 'Do not implement code' "pull-work keeps implementation out of pickup"
|
|
637
|
-
require_text "$PULL" 'Hand selected work to `plan-work` only after the pickup gate is satisfied' "pull-work preserves plan-work gate"
|
|
638
|
-
require_text "$PULL" 'enforce the full pull-work selection, WIP/shepherding, dependency, grouping, and worktree logic' "pull-work enforces selection logic before planning"
|
|
639
|
-
require_text "$PULL" 'fresh pickup Probe record exists' "pull-work requires fresh pickup Probe before planning"
|
|
640
|
-
require_text "$PULL" 'independent docs work' "pull-work examples cover independent docs work"
|
|
641
|
-
require_text "$PULL" 'Resource Contract audit work' "pull-work examples cover Resource Contract audit work"
|
|
642
|
-
require_text "$PULL" 'dogfood-alpha implementation work' "pull-work examples cover dogfood-alpha implementation work"
|
|
643
|
-
require_text "$PULL" 'blocked cross-product dependency' "pull-work examples cover blocked cross-product dependency"
|
|
644
|
-
require_text "$PULL" 'Direct `pull-work` remains a standalone primitive' "pull-work preserves direct primitive use"
|
|
645
|
-
require_text "$PULL" 'Builder Kit `build` flow' "pull-work documents Builder Kit build-flow pickup Probe"
|
|
646
|
-
require_text "$PULL" 'goal fit and scope' "pickup Probe checks goal fit and scope"
|
|
647
|
-
require_text "$PULL" 'blockers and dependencies' "pickup Probe checks blockers and dependencies"
|
|
648
|
-
require_text "$PULL" 'dependency freshness' "pickup Probe checks dependency freshness"
|
|
649
|
-
require_text "$PULL" 'acceptance criteria quality' "pickup Probe checks acceptance criteria quality"
|
|
650
|
-
require_text "$PULL" 'provider state' "pickup Probe checks provider state"
|
|
651
|
-
require_text "$PULL" 'risk and stop-short risks' "pickup Probe checks risk and stop-short risks"
|
|
652
|
-
require_text "$PULL" 'expected modified files and conflict risks' "pickup Probe records expected files and conflict risks"
|
|
653
|
-
require_text "$PULL" 'accepted gap' "pickup Probe records accepted gaps"
|
|
654
|
-
require_text "$PULL" 'Ask one alignment question at a time only when repo/provider context leaves a genuine decision gap' "pickup Probe limits alignment questions to genuine gaps"
|
|
655
|
-
require_text "$PULL" 'route `decision_gap` back to `design-probe`' "pull-work routes decision gaps to pickup Probe"
|
|
656
|
-
require_text "$PULL" 'my_active_work' "pull-work records my active work"
|
|
657
|
-
require_text "$PULL" 'shepherding_candidates' "pull-work records shepherding candidates"
|
|
658
|
-
require_text "$PULL" 'stale_worktrees' "pull-work records stale worktrees"
|
|
659
|
-
require_text "$PULL" 'open_prs_by_me' "pull-work records PRs by me"
|
|
660
|
-
require_text "$PULL" 'global_conflicts' "pull-work records global conflicts"
|
|
661
|
-
require_text "$PULL" 'dependency_impacts' "pull-work records dependency impacts"
|
|
662
|
-
require_text "$PULL" 'start_new_work_decision' "pull-work records start-new-work decision"
|
|
663
|
-
require_text "$PULL" 'worktree_lifecycle' "pull-work records worktree lifecycle"
|
|
664
|
-
require_text "$PULL" 'Personal WIP may block new work' "pull-work lets personal WIP block pickup"
|
|
665
|
-
require_text "$PULL" "Other people's WIP blocks only when" "pull-work distinguishes global WIP blocking"
|
|
666
|
-
require_text "$PULL" 'Publishing a branch must retain the worktree' "pull-work retains worktree through publish"
|
|
667
|
-
require_text "$PULL" 'Final acceptance, release cleanup, or explicit abandonment owns worktree removal' "pull-work assigns cleanup to final acceptance"
|
|
668
508
|
require_file "$PULL_WORK_PERSONAL_WIP_FIXTURE" "pull-work personal WIP fixture"
|
|
669
509
|
require_file "$PULL_WORK_GLOBAL_WIP_FIXTURE" "pull-work global WIP fixture"
|
|
670
510
|
require_text "$USAGE_GUIDE" 'Before selecting new work, `pull-work` must separate your WIP from global conflict context' "usage guide separates personal and global WIP"
|
|
@@ -710,73 +550,6 @@ require_file "$BUILDER_KIT_MISSING_PRESTEP_FIXTURE" "Builder Kit missing pre-ste
|
|
|
710
550
|
require_file "$BUILDER_KIT_STALE_CONTINUATION_FIXTURE" "Builder Kit stale continuation fixture"
|
|
711
551
|
require_file "$BUILDER_KIT_EMPTY_BOARD_FIXTURE" "Builder Kit empty board fixture"
|
|
712
552
|
require_file "$BUILDER_KIT_BASELINE_FRESHNESS_HINT_FIXTURE" "Builder Kit baseline freshness resolution hint fixture"
|
|
713
|
-
require_text "$DESIGN_PROBE" 'This skill is generic' "design-probe is generic"
|
|
714
|
-
require_text "$DESIGN_PROBE" 'modeled after Matt Pocock.*grill-me' "design-probe models grill-me"
|
|
715
|
-
require_text "$DESIGN_PROBE" 'Be relentless about ambiguity' "design-probe grills ambiguous branches"
|
|
716
|
-
require_text "$DESIGN_PROBE" 'Ask exactly one alignment question at a time' "design-probe asks one question at a time"
|
|
717
|
-
require_text "$DESIGN_PROBE" 'Include a recommended answer with every question' "design-probe includes recommended answer"
|
|
718
|
-
require_text "$DESIGN_PROBE" 'Explore first' "design-probe explores local context before asking"
|
|
719
|
-
require_text "$DESIGN_PROBE" 'accepted gap' "design-probe records accepted gaps"
|
|
720
|
-
require_text "$PICKUP_PROBE" 'Selected work item' "pickup-probe requires selected work input"
|
|
721
|
-
require_text "$PICKUP_PROBE" 'modeled after Matt Pocock.*grill-with-docs' "pickup-probe models grill-with-docs"
|
|
722
|
-
require_text "$PICKUP_PROBE" 'Provider state' "pickup-probe requires provider state"
|
|
723
|
-
require_text "$PICKUP_PROBE" 'WIP and conflict scan' "pickup-probe requires WIP/conflict scan"
|
|
724
|
-
require_text "$PICKUP_PROBE" 'Existing acceptance criteria' "pickup-probe requires acceptance criteria"
|
|
725
|
-
require_text "$PICKUP_PROBE" 'Source issue and artifact refs' "pickup-probe requires source refs"
|
|
726
|
-
require_text "$PICKUP_PROBE" 'Planned-base drift context' "pickup-probe requires planned-base drift context"
|
|
727
|
-
require_text "$PICKUP_PROBE" 'planned_base_ref' "pickup-probe records planned base ref"
|
|
728
|
-
require_text "$PICKUP_PROBE" 'planned_base_sha' "pickup-probe records planned base sha"
|
|
729
|
-
require_text "$PICKUP_PROBE" 'current target ref/SHA' "pickup-probe records current target ref and sha"
|
|
730
|
-
require_text "$PICKUP_PROBE" 'diff summary from the planned/pulled work SHA to current HEAD' "pickup-probe researches diff to current head"
|
|
731
|
-
require_text "$PICKUP_PROBE" 'Fetch latest for the target ref' "pickup-probe fetches latest before freshness checks"
|
|
732
|
-
require_text "$PICKUP_PROBE" 'compare the current target SHA to `planned_base_sha`' "pickup-probe compares current target SHA to planned_base_sha"
|
|
733
|
-
require_text "$PICKUP_PROBE" 'commits-since' "pickup-probe records commits-since"
|
|
734
|
-
require_text "$PICKUP_PROBE" 'planned age' "pickup-probe records planned age"
|
|
735
|
-
require_text "$PICKUP_PROBE" 'changed-file intersections with `planning_scope_refs`' "pickup-probe records planning scope intersections"
|
|
736
|
-
require_text "$PICKUP_PROBE" 'Classify revision freshness as `fresh`, `drifted`, or `stale`' "pickup-probe classifies fresh drifted stale"
|
|
737
|
-
require_text "$PICKUP_PROBE" '`drifted` prompts alignment and may proceed' "pickup-probe allows drifted with alignment"
|
|
738
|
-
require_text "$PICKUP_PROBE" '`stale` routes back to `idea-to-backlog`' "pickup-probe routes stale freshness to idea-to-backlog"
|
|
739
|
-
require_text "$PICKUP_PROBE" 'planned_base_sha.*missing.*NOT_VERIFIED' "pickup-probe marks missing planned_base_sha as NOT_VERIFIED"
|
|
740
|
-
require_text "$PICKUP_PROBE" 'concrete fallback baseline' "pickup-probe records fallback baseline for missing planned_base_sha"
|
|
741
|
-
require_text "$PICKUP_PROBE" 'resolution_hints.*Builder Kit Probe record' "pickup-probe records resolution hints in Builder Kit Probe record"
|
|
742
|
-
require_text "$PICKUP_PROBE" 'gap_id: revision_freshness_not_verified' "pickup-probe names baseline freshness hint gap id"
|
|
743
|
-
require_text "$PICKUP_PROBE" 'claim_id: planning.baseline.current' "pickup-probe names baseline freshness claim id"
|
|
744
|
-
require_text "$PICKUP_PROBE" 'resolve_at.*pickup-probe' "pickup-probe routes baseline hint resolution back to pickup-probe"
|
|
745
|
-
require_text "$PICKUP_PROBE" 'Probe status' "pickup-probe records Probe status"
|
|
746
|
-
require_text "$PICKUP_PROBE" 'Planning readiness' "pickup-probe records planning readiness"
|
|
747
|
-
require_text "$PICKUP_PROBE" 'Expected modified files' "pickup-probe records expected modified files"
|
|
748
|
-
require_text "$PICKUP_PROBE" 'Conflict risks' "pickup-probe records conflict risks"
|
|
749
|
-
require_text "$PICKUP_PROBE" 'Route reason and next action' "pickup-probe records route and next action"
|
|
750
|
-
require_text "$PICKUP_PROBE" 'Research drift before asking questions' "pickup-probe researches drift before alignment questions"
|
|
751
|
-
require_text "$PICKUP_PROBE" 'no_material_drift' "pickup-probe classifies no material drift"
|
|
752
|
-
require_text "$PICKUP_PROBE" 'scope_drift' "pickup-probe classifies scope drift"
|
|
753
|
-
require_text "$PICKUP_PROBE" 'dependency_drift' "pickup-probe classifies dependency drift"
|
|
754
|
-
require_text "$PICKUP_PROBE" 'contract_drift' "pickup-probe classifies contract drift"
|
|
755
|
-
require_text "$PICKUP_PROBE" 'conflict_risk' "pickup-probe classifies conflict risk"
|
|
756
|
-
require_text "$PICKUP_PROBE" 'Planned-base drift research is recorded' "pickup-probe gates planning on drift research"
|
|
757
|
-
require_text "$PICKUP_PROBE" 'planned-base drift summary and drift classification' "pickup-probe hands off drift summary to plan-work"
|
|
758
|
-
require_text "$PICKUP_PROBE" 'Update `CONTEXT.md` inline only for glossary-style durable terminology decisions' "pickup-probe limits CONTEXT.md updates"
|
|
759
|
-
require_text "$PICKUP_PROBE" 'Challenge glossary conflicts immediately' "pickup-probe challenges domain terminology"
|
|
760
|
-
require_text "$PICKUP_PROBE" 'Create a lazy context file only when a resolved term or workflow concept has no existing home' "pickup-probe creates context lazily"
|
|
761
|
-
require_text "$PICKUP_PROBE" 'context/contracts/probe-docs-write-contract.md' "pickup-probe references probe docs-write contract"
|
|
762
|
-
require_text "$PICKUP_PROBE" 'Never propose or create a numbered ADR' "pickup-probe never proposes numbered ADRs"
|
|
763
|
-
require_text "$PICKUP_PROBE" 'Record a decision delta at .docs/decisions/<slug>\.md' "pickup-probe records decision delta"
|
|
764
|
-
require_text "$PICKUP_PROBE" 'propose revise-vs-create' "pickup-probe proposes revise-vs-create against the index"
|
|
765
|
-
require_text "$PICKUP_PROBE" 'session-archive. evidence ref' "pickup-probe links transcript provenance"
|
|
766
|
-
require_text "$DESIGN_PROBE" 'context/contracts/probe-docs-write-contract.md' "design-probe references probe docs-write contract"
|
|
767
|
-
require_text "$DESIGN_PROBE" 'Docs-Write: Two-Delta Emission' "design-probe documents two-delta emission"
|
|
768
|
-
require_text "$DESIGN_PROBE" 'Vocabulary delta' "design-probe documents vocabulary delta"
|
|
769
|
-
require_text "$DESIGN_PROBE" 'Decision delta' "design-probe documents decision delta"
|
|
770
|
-
require_text "$DESIGN_PROBE" 'Transcript provenance' "design-probe documents transcript provenance"
|
|
771
|
-
require_text "$DESIGN_PROBE" 'Do not write a numbered ADR' "design-probe never proposes numbered ADRs"
|
|
772
|
-
require_text "$BUILDER_SHAPE" 'Product-level auto-guidance' "builder-shape guides idea-to-backlog"
|
|
773
|
-
require_text "$BUILDER_SHAPE" 'do not require them to type `idea-to-backlog`' "builder-shape hides primitive typing"
|
|
774
|
-
require_text "$PULL" 'probe_status' "pull-work records machine-checkable probe status"
|
|
775
|
-
require_text "$PULL" 'probe_artifact_ref' "pull-work records machine-checkable probe artifact"
|
|
776
|
-
require_text "$PULL" 'stale broad continuation instruction' "pull-work blocks stale broad continuation"
|
|
777
|
-
require_text "$PULL" 'no ready backlog item exists' "pull-work routes empty board to shape"
|
|
778
|
-
require_text "$PLAN_WORK" 'stale broad continuation language' "plan-work rejects stale continuation planning"
|
|
779
|
-
require_text "$PLAN_WORK" '`probe_status` is `passed` or `accepted_gap`' "plan-work requires passed or accepted-gap probe"
|
|
780
553
|
require_text "$BUILDER_KIT_STATE_CONTRACT" 'current step' "state contract documents current step"
|
|
781
554
|
require_text "$BUILDER_KIT_STATE_CONTRACT" 'next step' "state contract documents next step"
|
|
782
555
|
require_text "$BUILDER_KIT_STATE_CONTRACT" 'route reason' "state contract documents route reason"
|
|
@@ -888,51 +661,13 @@ fi
|
|
|
888
661
|
|
|
889
662
|
echo ""
|
|
890
663
|
echo "--- plan-work ---"
|
|
891
|
-
require_text "$PLAN_WORK" 'Direct `plan-work` remains a standalone planning primitive' "plan-work preserves direct primitive use"
|
|
892
|
-
require_text "$PLAN_WORK" 'When `plan-work` is invoked from the Builder Kit `build` flow' "plan-work conditionally consumes Builder Kit handoff"
|
|
893
|
-
require_text "$PLAN_WORK" 'recorded pickup Probe decisions' "plan-work consumes recorded pickup Probe decisions"
|
|
894
|
-
require_text "$PLAN_WORK" 'accepted gaps' "plan-work consumes accepted gaps"
|
|
895
|
-
require_text "$PLAN_WORK" 'Only consume Builder Kit Probe `resolution_hints` in those Builder Kit build/deliver/pickup contexts' "plan-work keeps resolution hints Builder Kit scoped"
|
|
896
|
-
require_text "$PLAN_WORK" 'Direct primitive `plan-work` remains valid without Builder Kit-specific `resolution_hints`' "plan-work preserves direct primitive without resolution hints"
|
|
897
|
-
require_text "$PLAN_WORK" 'revision_freshness_not_verified' "plan-work consumes baseline freshness resolution hint"
|
|
898
|
-
require_text "$PLAN_WORK" 'planning\.baseline\.current' "plan-work consumes Builder Kit baseline claim hint"
|
|
899
|
-
require_text "$PLAN_WORK" 'explicit accepted fallback baseline' "plan-work requires explicit fallback for missing baseline hint"
|
|
900
|
-
require_text "$PLAN_WORK" 'route `decision_gap` back to `design-probe`' "plan-work routes missing Builder Kit decisions back"
|
|
901
664
|
|
|
902
665
|
echo ""
|
|
903
666
|
echo "--- review-work ---"
|
|
904
|
-
require_text "$REVIEW_WORK" '^name: "review-work"$' "frontmatter name"
|
|
905
|
-
require_text "$REVIEW_WORK" 'tool-code-reviewer' "delegates to code reviewer"
|
|
906
|
-
require_text "$REVIEW_WORK" 'tool-security-reviewer' "conditionally delegates to security reviewer"
|
|
907
|
-
require_text "$REVIEW_WORK" 'tool-dependencies-updater' "delegates dependency review to dependencies updater"
|
|
908
|
-
require_text "$REVIEW_WORK" 'package\.json' "dependency review triggers on package manifests"
|
|
909
|
-
require_text "$REVIEW_WORK" 'requirements\.txt' "dependency review triggers on Python manifests"
|
|
910
|
-
require_text "$REVIEW_WORK" 'pyproject\.toml' "dependency review triggers on pyproject manifests"
|
|
911
|
-
require_text "$REVIEW_WORK" 'Cargo\.lock' "dependency review triggers on lockfiles"
|
|
912
|
-
require_text "$REVIEW_WORK" 'package-lock\.json' "dependency review triggers on npm lockfiles"
|
|
913
|
-
require_text "$REVIEW_WORK" 'lockfiles' "dependency review names lockfile triggers"
|
|
914
|
-
require_text "$REVIEW_WORK" 'Terraform' "IaC review triggers on Terraform"
|
|
915
|
-
require_text "$REVIEW_WORK" 'Kubernetes' "IaC review triggers on Kubernetes"
|
|
916
|
-
require_text "$REVIEW_WORK" 'Dockerfiles' "IaC review triggers on Dockerfiles"
|
|
917
|
-
require_text "$REVIEW_WORK" 'Helm' "IaC review triggers on Helm"
|
|
918
|
-
require_text "$REVIEW_WORK" 'GitHub Actions' "IaC review triggers on GitHub Actions"
|
|
919
|
-
require_text "$REVIEW_WORK" 'policy-as-code|policy as code' "IaC review triggers on policy as code"
|
|
920
|
-
require_text "$REVIEW_WORK" 'Checkov' "IaC scanner guidance names Checkov"
|
|
921
|
-
require_text "$REVIEW_WORK" 'tfsec' "IaC scanner guidance names tfsec"
|
|
922
|
-
require_text "$REVIEW_WORK" 'Trivy' "IaC scanner guidance names Trivy"
|
|
923
|
-
require_text "$REVIEW_WORK" 'Semgrep' "IaC scanner guidance names Semgrep"
|
|
924
|
-
require_text "$REVIEW_WORK" 'do not hard-require one vendor|no single vendor is required' "IaC scanner guidance is vendor-neutral"
|
|
925
|
-
require_text "$REVIEW_WORK" 'not_verified' "records missing review lanes as not_verified"
|
|
926
|
-
require_text "$REVIEW_WORK" 'critique.json' "records critique sidecar"
|
|
927
|
-
require_text "$REVIEW_WORK" 'Verification is not critique' "separates review from verification"
|
|
928
667
|
require_text "$ARTIFACT_CONTRACT" '`state.phase` is the canonical lifecycle vocabulary' "artifact contract identifies canonical state.phase lifecycle vocabulary"
|
|
929
668
|
require_text "$ARTIFACT_CONTRACT" '\| `state\.phase` \| `idea`, `backlog`, `pickup`, `planning`, `execution`, `verification`, `goal_fit`, `evidence`, `release`, `learning`, `done` \|' "artifact contract lists canonical state.phase values without review"
|
|
930
669
|
reject_text "$ARTIFACT_CONTRACT" '\| `state\.phase` \|.*`review`' "artifact contract does not list review as a canonical state.phase"
|
|
931
670
|
require_text "$ARTIFACT_CONTRACT" 'review-work is represented by the required critique artifact/sink' "artifact contract maps review-work to critique artifact/sink"
|
|
932
|
-
require_text "$REVIEW_WORK" '--phase execution' "review-work handoff keeps sidecar phase in execution"
|
|
933
|
-
require_text "$REVIEW_WORK" 'record-critique' "review-work supports direct critique recording"
|
|
934
|
-
require_text "$REVIEW_WORK" 'import-critique' "review-work imports review artifacts into critique sink"
|
|
935
|
-
require_text "$REVIEW_WORK" 'critique artifact/sink' "review-work records results through critique artifact/sink"
|
|
936
671
|
require_text "$REVIEW_CONTRACT" 'Review and verification are separate gates' "review contract separates review and verification"
|
|
937
672
|
require_text "$REVIEW_CONTRACT" 'Review is not a canonical `state.phase` value' "review contract rejects review as canonical state.phase"
|
|
938
673
|
require_text "$REVIEW_CONTRACT" 'configured critique artifact/sink' "review contract requires configured critique artifact/sink"
|
|
@@ -955,63 +690,12 @@ require_text "$TOOL_CODE_REVIEWER" 'context/contracts/review-contract.md' "code
|
|
|
955
690
|
|
|
956
691
|
echo ""
|
|
957
692
|
echo "--- evidence-gate ---"
|
|
958
|
-
require_text "$EVIDENCE" '^name: "evidence-gate"$' "frontmatter name"
|
|
959
|
-
require_text "$EVIDENCE" 'Do not fix code' "report-only gate"
|
|
960
|
-
require_text "$EVIDENCE" 'NOT_VERIFIED' "treats NOT_VERIFIED as first-class"
|
|
961
|
-
require_text "$EVIDENCE" 'Scope And Integrity Check' "checks scope and process integrity"
|
|
962
|
-
require_text "$EVIDENCE" 'Tier 0' "defines evidence tiers"
|
|
963
|
-
require_text "$EVIDENCE" 'passed-after-rerun|passed after rerun' "treats rerun green as degraded confidence"
|
|
964
|
-
require_text "$EVIDENCE" 'Publish Change Gate' "evidence-gate defines publish-change gate"
|
|
965
|
-
require_text "$EVIDENCE" 'Evidence Gate is not Release Readiness' "evidence-gate distinguishes release readiness"
|
|
966
|
-
require_text "$EVIDENCE" 'commit the verified diff' "evidence-gate requires committing verified diff"
|
|
967
|
-
require_text "$EVIDENCE" 'provider change record' "evidence-gate requires provider change publication"
|
|
968
|
-
require_text "$EVIDENCE" 'no-provider-change reason' "evidence-gate allows explicit no-provider-change reason"
|
|
969
|
-
require_text "$EVIDENCE" 'provider checks' "evidence-gate requires provider check evidence"
|
|
970
|
-
require_text "$EVIDENCE" 'Command/Test Evidence' "evidence-gate maps ACs to command/test evidence"
|
|
971
|
-
require_text "$EVIDENCE" 'Source Evidence / Permalinks' "evidence-gate maps ACs to source permalinks"
|
|
972
|
-
require_text "$EVIDENCE" 'prose-only claims' "evidence-gate rejects prose-only behavior evidence"
|
|
973
|
-
require_text "$EVIDENCE" 'GitHub PRs as the first `ChangeProvider` adapter example' "evidence-gate keeps GitHub PR as adapter example"
|
|
974
693
|
|
|
975
694
|
echo ""
|
|
976
695
|
echo "--- release-readiness ---"
|
|
977
|
-
require_text "$RELEASE" '^name: "release-readiness"$' "frontmatter name"
|
|
978
|
-
require_text "$RELEASE" 'Do not fix code' "report-only release gate"
|
|
979
|
-
require_text "$RELEASE" 'committed, pushed, and represented by a provider change record' "release-readiness requires published provider change"
|
|
980
|
-
require_text "$RELEASE" 'Release Readiness is not Evidence Gate' "release-readiness distinguishes evidence gate"
|
|
981
|
-
require_text "$RELEASE" 'do not make a merge/release/deploy decision from local verification alone' "release-readiness rejects local-only evidence"
|
|
982
|
-
require_text "$RELEASE" 'Missing provider checks also return `HOLD`' "release-readiness holds on missing provider checks by risk"
|
|
983
|
-
require_text "$RELEASE" 'GitHub PRs remain the first `ChangeProvider` adapter example' "release-readiness keeps GitHub PR as adapter example"
|
|
984
|
-
require_text "$RELEASE" 'Do not deploy unless the user explicitly asks' "prevents implicit deploys"
|
|
985
|
-
require_text "$RELEASE" 'rollback_plan' "requires rollback plan"
|
|
986
|
-
require_text "$RELEASE" 'observability_plan' "requires observability plan"
|
|
987
|
-
require_text "$RELEASE" 'post_deploy_checks' "requires post-deploy checks"
|
|
988
|
-
require_text "$RELEASE" 'final_acceptance_docs' "requires final acceptance docs"
|
|
989
|
-
require_text "$RELEASE" 'Docs Gate' "requires docs gate"
|
|
990
|
-
require_text "$RELEASE" 'MERGE' "defines MERGE decision"
|
|
991
|
-
require_text "$RELEASE" 'RELEASE' "defines RELEASE decision"
|
|
992
|
-
require_text "$RELEASE" 'DEPLOY' "defines DEPLOY decision"
|
|
993
|
-
require_text "$RELEASE" 'HOLD' "defines HOLD decision"
|
|
994
|
-
require_text "$RELEASE" 'ROLLBACK_REQUIRED' "defines ROLLBACK_REQUIRED decision"
|
|
995
696
|
|
|
996
697
|
echo ""
|
|
997
698
|
echo "--- learning-review ---"
|
|
998
|
-
require_text "$LEARNING" '^name: "learning-review"$' "frontmatter name"
|
|
999
|
-
require_text "$LEARNING" 'Do not implement fixes' "report-only learning review"
|
|
1000
|
-
require_text "$LEARNING" 'observed facts|facts' "separates facts from interpretation"
|
|
1001
|
-
require_text "$LEARNING" 'followups' "requires follow-up routing"
|
|
1002
|
-
require_text "$LEARNING" 'knowledge_updates' "requires durable knowledge update tracking"
|
|
1003
|
-
require_text "$LEARNING" 'docs_promotion' "requires docs promotion tracking"
|
|
1004
|
-
require_text "$LEARNING" 'Docs Gate' "requires learning docs gate"
|
|
1005
|
-
require_text "$LEARNING" 'intended behavior.*observed behavior|observed behavior.*intended behavior' "requires intended-vs-observed correction comparison"
|
|
1006
|
-
require_text "$LEARNING" 'correction\.needed: false' "defines clean no-correction records"
|
|
1007
|
-
require_text "$LEARNING" 'correction\.needed: true' "defines correction-needed mismatch records"
|
|
1008
|
-
require_text "$LEARNING" 'correction\.recurrence_key' "requires stable correction recurrence key"
|
|
1009
|
-
require_text "$LEARNING" 'correction\.type' "requires typed correction classification"
|
|
1010
|
-
require_text "$LEARNING" 'prevention route|no-change rationale|no_change_rationale' "requires correction prevention or no-change rationale"
|
|
1011
|
-
require_text "$LEARNING" 'do not invent|not an invented lesson' "prevents invented lessons for clean runs"
|
|
1012
|
-
require_text "$LEARNING" 'LEARNED' "defines LEARNED verdict"
|
|
1013
|
-
require_text "$LEARNING" 'FOLLOWUP_REQUIRED' "defines FOLLOWUP_REQUIRED verdict"
|
|
1014
|
-
require_text "$LEARNING" 'BLOCKED' "defines BLOCKED verdict"
|
|
1015
699
|
|
|
1016
700
|
echo ""
|
|
1017
701
|
echo "--- map/session ---"
|
|
@@ -1138,8 +822,17 @@ require_text "$MAP" 'review-work' "map includes review-work"
|
|
|
1138
822
|
require_text "$MAP" 'evidence-gate' "map includes evidence-gate"
|
|
1139
823
|
require_text "$MAP" 'release-readiness' "map includes release-readiness"
|
|
1140
824
|
require_text "$MAP" 'learning-review' "map includes learning-review"
|
|
825
|
+
require_text "$MAP" '<slug>--idea-to-backlog\.md' "map names the durable shaping report"
|
|
826
|
+
require_text "$MAP" '<slug>--pull-work\.md' "map names the durable pull/probe report"
|
|
827
|
+
require_text "$MAP" '<slug>--plan-work\.md' "map names the durable plan report"
|
|
828
|
+
require_text "$MAP" 'release\.json' "map names the durable release decision"
|
|
829
|
+
require_text "$MAP" 'learning\.json' "map names the durable learning record"
|
|
830
|
+
require_text "$USAGE_GUIDE" -- '--criterion-json' "usage guide requires criterion JSON for verification evidence"
|
|
831
|
+
PROJECT_TEST_COMMAND='npm test'
|
|
832
|
+
require_text "$USAGE_GUIDE" "$PROJECT_TEST_COMMAND" "usage guide uses a substantive project verification command"
|
|
833
|
+
reject_text_many '--reviewer|--command "true"|--command "node --version"' "public workflow guidance rejects caller-selected review identity and no-op evidence commands" "$PUBLIC_WORKFLOW_CLI" "$USAGE_GUIDE" "$ROOT/kits/builder/skills/review-work/SKILL.md" "$ROOT/kits/builder/skills/verify-work/SKILL.md"
|
|
1141
834
|
require_text "$MAP" 'Publish Change Gate' "map includes publish-change gate"
|
|
1142
|
-
require_text "$MAP" 'commit/branch/
|
|
835
|
+
require_text "$MAP" 'commit/branch/provider-change/CI links' "map captures provider change and CI links before release"
|
|
1143
836
|
require_text "$CONTEXT_MAP" 'Repository Shape' "context map includes repo shape"
|
|
1144
837
|
require_text "$CONTEXT_MAP" 'Core Commands' "context map includes commands"
|
|
1145
838
|
require_text "$CONTEXT_MAP" 'Workflow Sidecars' "context map includes sidecars"
|
|
@@ -1151,13 +844,8 @@ require_text "$PAGES_LAYOUT" 'context-map.html' "docs layout links context map"
|
|
|
1151
844
|
require_text "$PAGES_LAYOUT" 'veritas-integration.html' "docs layout links Veritas boundary"
|
|
1152
845
|
require_text "$MAP" 'thinnest meaningful slice' "map captures thin-slice guardrail"
|
|
1153
846
|
require_text "$MAP" 'Phase Composition' "docs capture workflow phase composition"
|
|
1154
|
-
require_text "$IDEA" 'thinnest meaningful slice' "skills capture thin-slice guardrail"
|
|
1155
|
-
require_text "$PULL" 'worktree' "skills capture worktree isolation"
|
|
1156
|
-
require_text "$EVIDENCE" 'Evidence Tiers' "skills capture evidence tiers"
|
|
1157
847
|
require_text "$MAP" 'release-readiness' "docs capture release-readiness"
|
|
1158
848
|
require_text "$MAP" 'learning-review' "docs capture learning-review"
|
|
1159
|
-
require_text "$DELIVER" 'dogfood-pass' "deliver skill adopts dogfood-pass"
|
|
1160
|
-
require_text "$LEARNING" 'dogfood-pass' "learning-review skill adopts dogfood-pass"
|
|
1161
849
|
require_text "$EVAL_STRATEGY" 'Activation-only behavioral evals' "eval strategy distinguishes activation evals"
|
|
1162
850
|
require_text "$EVAL_STRATEGY" 'Artifact-quality evals' "eval strategy distinguishes artifact evals"
|
|
1163
851
|
require_text "$EVAL_STRATEGY" 'Hook-influence behavioral cases' "eval strategy documents hook influence cases"
|
|
@@ -123,6 +123,28 @@
|
|
|
123
123
|
"on_exceeded": "block"
|
|
124
124
|
},
|
|
125
125
|
"expects": [
|
|
126
|
+
{
|
|
127
|
+
"id": "clean-critique",
|
|
128
|
+
"kind": "trust.bundle",
|
|
129
|
+
"required": true,
|
|
130
|
+
"description": "A distinct reviewer recorded a current clean critique of the delivered change.",
|
|
131
|
+
"bundle_claim": {
|
|
132
|
+
"claimType": "workflow.critique.review",
|
|
133
|
+
"subjectType": "workflow-critique",
|
|
134
|
+
"accepted_statuses": ["verified"]
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "acceptance-criteria",
|
|
139
|
+
"kind": "trust.bundle",
|
|
140
|
+
"required": true,
|
|
141
|
+
"description": "The selected Work Item acceptance criteria have verified evidence.",
|
|
142
|
+
"bundle_claim": {
|
|
143
|
+
"claimType": "workflow.acceptance.criterion",
|
|
144
|
+
"subjectType": "flow-step",
|
|
145
|
+
"accepted_statuses": ["verified"]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
126
148
|
{
|
|
127
149
|
"id": "tests-evidence",
|
|
128
150
|
"kind": "trust.bundle",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"bundle_claim": {
|
|
20
20
|
"claimType": "builder.shape.problem",
|
|
21
21
|
"subjectType": "decision",
|
|
22
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
22
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
{
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"bundle_claim": {
|
|
31
31
|
"claimType": "builder.shape.outcome",
|
|
32
32
|
"subjectType": "flow-run",
|
|
33
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
33
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
{
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"bundle_claim": {
|
|
42
42
|
"claimType": "builder.shape.constraints",
|
|
43
43
|
"subjectType": "decision",
|
|
44
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
44
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
{
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"bundle_claim": {
|
|
53
53
|
"claimType": "builder.shape.non-goals",
|
|
54
54
|
"subjectType": "decision",
|
|
55
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
55
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
{
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"bundle_claim": {
|
|
64
64
|
"claimType": "builder.shape.success",
|
|
65
65
|
"subjectType": "artifact",
|
|
66
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
66
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
{
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"bundle_claim": {
|
|
75
75
|
"claimType": "builder.shape.risk",
|
|
76
76
|
"subjectType": "decision",
|
|
77
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
77
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
80
|
{
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"bundle_claim": {
|
|
87
87
|
"claimType": "builder.shape.open-decisions",
|
|
88
88
|
"subjectType": "decision",
|
|
89
|
-
"accepted_statuses": ["trusted", "accepted", "advisory"]
|
|
89
|
+
"accepted_statuses": ["verified", "trusted", "accepted", "advisory"]
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
]
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"bundle_claim": {
|
|
103
103
|
"claimType": "builder.breakdown.slices",
|
|
104
104
|
"subjectType": "work-item",
|
|
105
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
105
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
]
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"bundle_claim": {
|
|
119
119
|
"claimType": "builder.file-issues.work-items",
|
|
120
120
|
"subjectType": "work-item",
|
|
121
|
-
"accepted_statuses": ["trusted", "accepted"]
|
|
121
|
+
"accepted_statuses": ["verified", "trusted", "accepted"]
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
]
|