@tyroneross/build-loop 0.30.3 → 0.35.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/.agents/plugins/marketplace.json +2 -2
- package/.claude-plugin/marketplace.json +4 -4
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/AGENTS.md +11 -2
- package/README.md +8 -7
- package/agents/advisor.md +111 -0
- package/agents/alignment-checker.md +11 -0
- package/agents/assessment-orchestrator.md +1 -1
- package/agents/build-orchestrator.md +28 -33
- package/agents/fact-checker.md +1 -1
- package/agents/fix-critique.md +1 -1
- package/agents/independent-auditor.md +1 -1
- package/agents/overfitting-reviewer.md +1 -1
- package/agents/plan-critic.md +8 -6
- package/agents/promotion-reviewer.md +1 -1
- package/agents/retrospective-synthesizer.md +20 -3
- package/agents/scope-auditor.md +1 -1
- package/agents/security-reviewer.md +1 -1
- package/agents/self-improvement-architect.md +1 -1
- package/commands/{handoff.md → compose-handoff.md} +4 -4
- package/commands/{optimize.md → optimize-run.md} +1 -1
- package/commands/{agent-rally-point.md → rally-point.md} +3 -3
- package/commands/{research.md → research-run.md} +1 -1
- package/commands/setup-memory.md +32 -0
- package/commands/{plan-verify.md → verify-plan.md} +1 -1
- package/docs/agent-surface-policy.md +38 -20
- package/docs/memory-setup.md +19 -14
- package/hooks/_resolve_python.sh +28 -0
- package/hooks/closeout.sh +58 -0
- package/hooks/git/pre-push +69 -6
- package/hooks/hooks.json +34 -13
- package/hooks/post-push-closeout.sh +73 -0
- package/hooks/session-start-closeout.sh +69 -0
- package/hooks/session-start-memory.sh +27 -0
- package/hooks/session-start-plugin-heal.sh +33 -0
- package/hooks/test_closeout.sh +124 -0
- package/package.json +7 -4
- package/plugin-artifacts/codex/.codex-plugin/plugin.json +41 -0
- package/plugin-artifacts/codex/AGENTS.md +507 -0
- package/plugin-artifacts/codex/BUILD-ARTIFACT.md +5 -0
- package/plugin-artifacts/codex/LICENSE +202 -0
- package/plugin-artifacts/codex/README.md +404 -0
- package/plugin-artifacts/codex/docs/agent-surface-policy.md +63 -0
- package/plugin-artifacts/codex/references/advisor-dispatch-ladder.md +62 -0
- package/plugin-artifacts/codex/references/agent-role-taxonomy.md +135 -0
- package/plugin-artifacts/codex/references/autonomous-and-per-commit-modes.md +161 -0
- package/plugin-artifacts/codex/references/autonomy-config.md +231 -0
- package/plugin-artifacts/codex/references/capability-routing.md +182 -0
- package/plugin-artifacts/codex/references/codex-subagents.md +106 -0
- package/plugin-artifacts/codex/references/coordination-file-template.md +181 -0
- package/plugin-artifacts/codex/references/coordination-rules.md +283 -0
- package/plugin-artifacts/codex/references/dogfood-reload-checkpoint.md +112 -0
- package/plugin-artifacts/codex/references/halt-and-ask-protocol.md +102 -0
- package/plugin-artifacts/codex/references/implementer-envelope-schema.md +302 -0
- package/plugin-artifacts/codex/references/intent-capability-pack.md +257 -0
- package/plugin-artifacts/codex/references/intent-exploration-prompts.md +96 -0
- package/plugin-artifacts/codex/references/leadership.md +72 -0
- package/plugin-artifacts/codex/references/memory-systems.md +238 -0
- package/plugin-artifacts/codex/references/memory.md +299 -0
- package/plugin-artifacts/codex/references/model-tier-mapping.md +257 -0
- package/plugin-artifacts/codex/references/modular-systems-pack.md +96 -0
- package/plugin-artifacts/codex/references/phase-1-assess.md +231 -0
- package/plugin-artifacts/codex/references/phase-2-plan.md +78 -0
- package/plugin-artifacts/codex/references/phase-3-execute.md +49 -0
- package/plugin-artifacts/codex/references/phase-4-review.md +322 -0
- package/plugin-artifacts/codex/references/phase-5-iterate.md +71 -0
- package/plugin-artifacts/codex/references/phase-6-learn.md +56 -0
- package/plugin-artifacts/codex/references/recent-design-structures.md +274 -0
- package/plugin-artifacts/codex/references/research-trigger-policy.md +140 -0
- package/plugin-artifacts/codex/references/runtime-smoke-triggers.md +42 -0
- package/plugin-artifacts/codex/references/self-review.md +234 -0
- package/plugin-artifacts/codex/references/single-writer-commit-protocol.md +90 -0
- package/plugin-artifacts/codex/references/task-capture-policy.md +68 -0
- package/plugin-artifacts/codex/references/ui-io-contract.md +116 -0
- package/plugin-artifacts/codex/references/ui-spotcheck-protocol.md +65 -0
- package/plugin-artifacts/codex/skills/build-loop/SKILL.md +372 -0
- package/plugin-artifacts/codex/skills/build-loop/detect-plugins.mjs +82 -0
- package/plugin-artifacts/codex/skills/build-loop/eval-guide.md +65 -0
- package/plugin-artifacts/codex/skills/build-loop/fallbacks.md +549 -0
- package/plugin-artifacts/codex/skills/build-loop/phases/fact-check.md +42 -0
- package/plugin-artifacts/codex/skills/build-loop/phases/ui-validation.md +267 -0
- package/plugin-artifacts/codex/skills/build-loop/references/advisor-dispatch-ladder.md +62 -0
- package/plugin-artifacts/codex/skills/build-loop/references/apple-native-planning.md +439 -0
- package/plugin-artifacts/codex/skills/build-loop/references/autonomous-and-per-commit-modes.md +161 -0
- package/plugin-artifacts/codex/skills/build-loop/references/capability-routing.md +182 -0
- package/plugin-artifacts/codex/skills/build-loop/references/codex-subagents.md +106 -0
- package/plugin-artifacts/codex/skills/build-loop/references/coordination.md +161 -0
- package/plugin-artifacts/codex/skills/build-loop/references/correction-aware-capture.md +177 -0
- package/plugin-artifacts/codex/skills/build-loop/references/independent-auditor.md +72 -0
- package/plugin-artifacts/codex/skills/build-loop/references/intent-capability-pack.md +257 -0
- package/plugin-artifacts/codex/skills/build-loop/references/intent-exploration-prompts.md +96 -0
- package/plugin-artifacts/codex/skills/build-loop/references/leadership.md +72 -0
- package/plugin-artifacts/codex/skills/build-loop/references/memory.md +299 -0
- package/plugin-artifacts/codex/skills/build-loop/references/modular-systems-pack.md +96 -0
- package/plugin-artifacts/codex/skills/build-loop/references/output-style.md +129 -0
- package/plugin-artifacts/codex/skills/build-loop/references/pay-it-forward-arch.md +98 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-1-assess.md +231 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-2-plan.md +78 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-3-execute.md +49 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-4-review.md +322 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-5-iterate.md +71 -0
- package/plugin-artifacts/codex/skills/build-loop/references/phase-6-learn.md +56 -0
- package/plugin-artifacts/codex/skills/build-loop/references/recent-design-structures.md +274 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
- package/plugin-artifacts/codex/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
- package/plugin-artifacts/codex/skills/build-loop/references/self-recursive-dev.md +77 -0
- package/plugin-artifacts/codex/skills/build-loop/references/self-review.md +234 -0
- package/plugin-artifacts/codex/skills/build-loop/references/ui-io-contract.md +116 -0
- package/plugin-artifacts/codex/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
- package/plugin-artifacts/codex/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
- package/plugin-artifacts/codex/skills/build-loop/templates/backlog-item.md +35 -0
- package/plugin-artifacts/codex/skills/build-loop/templates/codex-worker-prompt.md +100 -0
- package/plugin-artifacts/codex/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
- package/plugin-artifacts/codex/skills/build-loop/templates/ux-fix-plan.md +40 -0
- package/scripts/_paths.py +59 -13
- package/scripts/build_codex_plugin_artifact.py +314 -0
- package/scripts/check_cache_sync.py +1 -1
- package/scripts/install_memory.py +11 -3
- package/scripts/prune_plugin_cache.py +225 -11
- package/scripts/sync_navgator_lessons.py +25 -0
- package/scripts/sync_plugin_cache.py +66 -36
- package/skills/agent-rally-point/SKILL.md +1 -1
- package/skills/agent-rally-watcher/SKILL.md +1 -1
- package/skills/build-loop/SKILL.md +11 -155
- package/skills/build-loop/references/advisor-dispatch-ladder.md +62 -0
- package/skills/build-loop/references/autonomous-and-per-commit-modes.md +161 -0
- package/skills/build-loop/references/capability-routing.md +4 -3
- package/skills/build-loop/references/codex-subagents.md +8 -0
- package/skills/build-loop/references/coordination.md +1 -1
- package/skills/build-loop/references/intent-capability-pack.md +88 -1
- package/skills/build-loop/references/memory.md +17 -2
- package/skills/build-loop/references/phase-1-assess.md +13 -0
- package/skills/build-loop/references/phase-2-plan.md +2 -1
- package/skills/build-loop/references/phase-3-execute.md +4 -2
- package/skills/build-loop/references/phase-4-review.md +12 -0
- package/skills/build-loop/references/phase-6-learn.md +1 -1
- package/skills/build-loop/references/self-review.md +4 -2
- package/skills/build-loop/templates/codex-worker-prompt.md +45 -34
- package/skills/handoff/SKILL.md +3 -3
- package/skills/loop-builder/SKILL.md +98 -0
- package/skills/loop-builder/presets/active-project-evidence.yaml +97 -0
- package/skills/loop-builder/presets/generic-artifact-loop.yaml +95 -0
- package/skills/loop-builder/presets/presentation-audit.yaml +96 -0
- package/skills/loop-builder/presets/research-synthesis.yaml +96 -0
- package/skills/loop-builder/presets/source-ingestion-raw-data-audit.yaml +96 -0
- package/skills/loop-builder/references/spec-format.md +80 -0
- package/skills/loop-builder/scripts/loop_builder.py +346 -0
- package/skills/model-tiering/SKILL.md +65 -40
- package/skills/optimize/SKILL.md +2 -2
- package/skills/plan-verify/SKILL.md +1 -1
- package/skills/plugin-builder/references/distribution.md +8 -0
- package/skills/research/SKILL.md +33 -6
- package/skills/runtime-parity-verification/SKILL.md +51 -0
- package/skills/spec-writing/SKILL.md +19 -0
- package/templates/memory/README.md +65 -0
- package/templates/memory/charter.md.template +46 -0
- package/templates/memory/manifest.json +24 -4
- package/codex-skills/debug-loop/SKILL.md +0 -18
- package/codex-skills/handoff/SKILL.md +0 -22
- package/codex-skills/knowledge/SKILL.md +0 -21
- package/codex-skills/optimize/SKILL.md +0 -18
- package/codex-skills/research/SKILL.md +0 -18
- /package/commands/{knowledge-review.md → review-knowledge.md} +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "presentation-audit",
|
|
3
|
+
"title": "Presentation Audit Loop",
|
|
4
|
+
"summary": "Audit a deck for storyline, evidence, slide-level clarity, accessibility, and prioritized fixes.",
|
|
5
|
+
"inputs": [
|
|
6
|
+
"pptx or pdf",
|
|
7
|
+
"speaker notes",
|
|
8
|
+
"audience",
|
|
9
|
+
"meeting goal",
|
|
10
|
+
"source material"
|
|
11
|
+
],
|
|
12
|
+
"outputs": [
|
|
13
|
+
"slide inventory",
|
|
14
|
+
"audit report",
|
|
15
|
+
"prioritized fix plan",
|
|
16
|
+
"claim/source map",
|
|
17
|
+
"reusable deck failure patterns"
|
|
18
|
+
],
|
|
19
|
+
"phases": {
|
|
20
|
+
"assess": {
|
|
21
|
+
"goal": "Extract deck inventory and define audience, decision, timebox, and intended outcome.",
|
|
22
|
+
"required": ["deck_inventory", "audience", "decision_or_goal", "source_material"]
|
|
23
|
+
},
|
|
24
|
+
"plan": {
|
|
25
|
+
"goal": "Choose audit lenses and order deterministic checks before judgment checks.",
|
|
26
|
+
"required": ["audit_lenses", "slide_reference_scheme", "accessibility_scope"]
|
|
27
|
+
},
|
|
28
|
+
"produce": {
|
|
29
|
+
"goal": "Produce findings with slide references and ranked fixes.",
|
|
30
|
+
"required": ["slide_findings", "claim_gaps", "fix_priority"]
|
|
31
|
+
},
|
|
32
|
+
"review": {
|
|
33
|
+
"goal": "Check that findings are specific, evidenced, and separated by severity and type.",
|
|
34
|
+
"required": ["finding_evidence", "severity_ranking", "accessibility_split"]
|
|
35
|
+
},
|
|
36
|
+
"learn": {
|
|
37
|
+
"goal": "Capture recurring deck failure modes and reusable slide patterns.",
|
|
38
|
+
"required": ["failure_patterns", "template_candidates"]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"validators": [
|
|
42
|
+
{
|
|
43
|
+
"id": "slide_references",
|
|
44
|
+
"pass_condition": "Every finding cites a slide number, section, or notes location.",
|
|
45
|
+
"method": "review"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "claim_support",
|
|
49
|
+
"pass_condition": "Material claims are mapped to a source or marked as unsupported/assumption.",
|
|
50
|
+
"method": "review"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "audience_fit",
|
|
54
|
+
"pass_condition": "Recommendations are tied to the audience job and meeting decision, not taste alone.",
|
|
55
|
+
"method": "review"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "accessibility_split",
|
|
59
|
+
"pass_condition": "Accessibility findings are separated from storyline/design judgment and labeled partial when automated extraction is limited.",
|
|
60
|
+
"method": "review"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"gates": {
|
|
64
|
+
"confirm": ["external_send", "sensitive_data_exposure"],
|
|
65
|
+
"surface": ["legal_or_compliance_assertion", "people_impacting_decision"]
|
|
66
|
+
},
|
|
67
|
+
"skill_chain": {
|
|
68
|
+
"intake": {
|
|
69
|
+
"primary": [],
|
|
70
|
+
"optional": ["doc"],
|
|
71
|
+
"fallback": "Extract slide titles, notes, and visible text with available local tools.",
|
|
72
|
+
"handoff_artifact": "deck_inventory.md"
|
|
73
|
+
},
|
|
74
|
+
"produce": {
|
|
75
|
+
"primary": ["pyramid-principle:pyramid-presentation"],
|
|
76
|
+
"optional": ["research"],
|
|
77
|
+
"fallback": "Apply one-job-per-slide and answer-first storyline checks manually.",
|
|
78
|
+
"handoff_artifact": "audit_report.md"
|
|
79
|
+
},
|
|
80
|
+
"review": {
|
|
81
|
+
"primary": ["pyramid-principle:pyramid-audit"],
|
|
82
|
+
"optional": ["research"],
|
|
83
|
+
"fallback": "Run rubric.md validators against each slide finding.",
|
|
84
|
+
"handoff_artifact": "audit_verdict.md"
|
|
85
|
+
},
|
|
86
|
+
"learn": {
|
|
87
|
+
"primary": ["build-loop:knowledge"],
|
|
88
|
+
"optional": [],
|
|
89
|
+
"fallback": "Record recurring deck failure patterns in the report.",
|
|
90
|
+
"handoff_artifact": "deck_lessons.md"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"learn": {
|
|
94
|
+
"store": ["deck_failure_patterns", "reusable_slide_patterns", "source_quirks", "rubric_failures"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "research-synthesis",
|
|
3
|
+
"title": "Research Synthesis Loop",
|
|
4
|
+
"summary": "Answer a question with explicit source strategy, evidence extraction, confidence, and durable citations.",
|
|
5
|
+
"inputs": [
|
|
6
|
+
"research question",
|
|
7
|
+
"decision use",
|
|
8
|
+
"freshness requirement",
|
|
9
|
+
"candidate sources",
|
|
10
|
+
"source quality rubric"
|
|
11
|
+
],
|
|
12
|
+
"outputs": [
|
|
13
|
+
"source strategy",
|
|
14
|
+
"evidence table",
|
|
15
|
+
"synthesis memo",
|
|
16
|
+
"claim verification log",
|
|
17
|
+
"reusable search strategy"
|
|
18
|
+
],
|
|
19
|
+
"phases": {
|
|
20
|
+
"assess": {
|
|
21
|
+
"goal": "Frame the question, scope, decision use, freshness need, and inclusion/exclusion rules.",
|
|
22
|
+
"required": ["question", "decision_use", "freshness_requirement", "inclusion_exclusion"]
|
|
23
|
+
},
|
|
24
|
+
"plan": {
|
|
25
|
+
"goal": "Plan source collection, extraction fields, and confidence markers.",
|
|
26
|
+
"required": ["source_strategy", "extraction_schema", "confidence_scheme"]
|
|
27
|
+
},
|
|
28
|
+
"produce": {
|
|
29
|
+
"goal": "Collect sources, extract evidence, and synthesize the answer.",
|
|
30
|
+
"required": ["source_list", "evidence_table", "synthesis"]
|
|
31
|
+
},
|
|
32
|
+
"review": {
|
|
33
|
+
"goal": "Verify claims, dates, statistics, and contested points.",
|
|
34
|
+
"required": ["claim_inventory", "verification_log", "weak_claims"]
|
|
35
|
+
},
|
|
36
|
+
"learn": {
|
|
37
|
+
"goal": "Persist the report, source quirks, and reusable search strategy.",
|
|
38
|
+
"required": ["saved_report", "search_strategy", "source_quirks"]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"validators": [
|
|
42
|
+
{
|
|
43
|
+
"id": "claim_citation",
|
|
44
|
+
"pass_condition": "Every material claim has a citation or is marked inferred/unsupported.",
|
|
45
|
+
"method": "review"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "freshness_trace",
|
|
49
|
+
"pass_condition": "Time-sensitive claims include source publication or capture date.",
|
|
50
|
+
"method": "review"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "source_quality",
|
|
54
|
+
"pass_condition": "Each source has a quality tier and role in the answer.",
|
|
55
|
+
"method": "review"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "weak_claim_handling",
|
|
59
|
+
"pass_condition": "Unsupported claims are removed, downgraded, or labeled explicitly.",
|
|
60
|
+
"method": "review"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"gates": {
|
|
64
|
+
"confirm": ["external_send", "legal_or_compliance_assertion", "sensitive_data_exposure"],
|
|
65
|
+
"surface": ["people_impacting_decision", "money_movement"]
|
|
66
|
+
},
|
|
67
|
+
"skill_chain": {
|
|
68
|
+
"intake": {
|
|
69
|
+
"primary": ["research"],
|
|
70
|
+
"optional": [],
|
|
71
|
+
"fallback": "Use local repo/wiki scan and explicit source list.",
|
|
72
|
+
"handoff_artifact": "research_packet.md"
|
|
73
|
+
},
|
|
74
|
+
"produce": {
|
|
75
|
+
"primary": ["research"],
|
|
76
|
+
"optional": ["pyramid-principle:pyramid-short-form"],
|
|
77
|
+
"fallback": "Draft synthesis from evidence table with confidence markers.",
|
|
78
|
+
"handoff_artifact": "synthesis_memo.md"
|
|
79
|
+
},
|
|
80
|
+
"review": {
|
|
81
|
+
"primary": ["research"],
|
|
82
|
+
"optional": [],
|
|
83
|
+
"fallback": "Run claim inventory and citation checks manually.",
|
|
84
|
+
"handoff_artifact": "claim_verification_log.md"
|
|
85
|
+
},
|
|
86
|
+
"learn": {
|
|
87
|
+
"primary": ["build-loop:knowledge"],
|
|
88
|
+
"optional": [],
|
|
89
|
+
"fallback": "Persist source quirks and search strategy in the report.",
|
|
90
|
+
"handoff_artifact": "research_lessons.md"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"learn": {
|
|
94
|
+
"store": ["search_strategy", "source_quirks", "claim_failures", "useful_sources"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "source-ingestion-raw-data-audit",
|
|
3
|
+
"title": "Source Ingestion and Raw Data Audit Loop",
|
|
4
|
+
"summary": "Inventory, dedupe, preserve, and audit source artifacts before promoting claims or source cards.",
|
|
5
|
+
"inputs": [
|
|
6
|
+
"source folder",
|
|
7
|
+
"candidate files",
|
|
8
|
+
"spreadsheets or survey exports",
|
|
9
|
+
"artifact versions",
|
|
10
|
+
"project question"
|
|
11
|
+
],
|
|
12
|
+
"outputs": [
|
|
13
|
+
"source inventory",
|
|
14
|
+
"duplicate and version map",
|
|
15
|
+
"raw-data manifest",
|
|
16
|
+
"ingestion priority list",
|
|
17
|
+
"source-card drafting queue"
|
|
18
|
+
],
|
|
19
|
+
"phases": {
|
|
20
|
+
"assess": {
|
|
21
|
+
"goal": "Identify source roots, sensitive material, project questions, and raw-data-bearing files.",
|
|
22
|
+
"required": ["source_roots", "sensitivity_labels", "project_questions", "raw_data_candidates"]
|
|
23
|
+
},
|
|
24
|
+
"plan": {
|
|
25
|
+
"goal": "Prioritize ingestion by decision relevance, source quality, and dedupe risk.",
|
|
26
|
+
"required": ["ingestion_order", "duplicate_strategy", "raw_preservation_strategy"]
|
|
27
|
+
},
|
|
28
|
+
"produce": {
|
|
29
|
+
"goal": "Write inventory, duplicate map, raw-data manifest, and source-card queue.",
|
|
30
|
+
"required": ["hashes", "row_column_counts", "sheet_names", "filters_or_denominators"]
|
|
31
|
+
},
|
|
32
|
+
"review": {
|
|
33
|
+
"goal": "Verify version choices and that quantitative claims can trace to raw or surrogate data.",
|
|
34
|
+
"required": ["version_verdicts", "raw_trace_checks", "uncertain_items"]
|
|
35
|
+
},
|
|
36
|
+
"learn": {
|
|
37
|
+
"goal": "Capture source quirks and future ingestion rules.",
|
|
38
|
+
"required": ["source_quirks", "reusable_ingestion_rules"]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"validators": [
|
|
42
|
+
{
|
|
43
|
+
"id": "source_inventory_complete",
|
|
44
|
+
"pass_condition": "Every candidate source has path, type, size or count proxy, and ingestion status.",
|
|
45
|
+
"method": "code-or-review"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "duplicate_resolution",
|
|
49
|
+
"pass_condition": "Same-title or same-hash files are grouped with an explicit keep/compare/defer verdict.",
|
|
50
|
+
"method": "review"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "raw_data_trace",
|
|
54
|
+
"pass_condition": "Every quantitative source links to an original file or stable surrogate with sheet/table names and row/column counts.",
|
|
55
|
+
"method": "code-or-review"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "uncertain_items_flagged",
|
|
59
|
+
"pass_condition": "Uncertain, inaccessible, or sensitive items are listed instead of silently skipped.",
|
|
60
|
+
"method": "review"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"gates": {
|
|
64
|
+
"confirm": ["sensitive_data_exposure", "irreversible_source_change"],
|
|
65
|
+
"surface": ["legal_or_compliance_assertion"]
|
|
66
|
+
},
|
|
67
|
+
"skill_chain": {
|
|
68
|
+
"intake": {
|
|
69
|
+
"primary": ["research"],
|
|
70
|
+
"optional": ["doc"],
|
|
71
|
+
"fallback": "Run filesystem inventory and summarize file types manually.",
|
|
72
|
+
"handoff_artifact": "source_inventory.md"
|
|
73
|
+
},
|
|
74
|
+
"produce": {
|
|
75
|
+
"primary": [],
|
|
76
|
+
"optional": ["research"],
|
|
77
|
+
"fallback": "Use deterministic scripts or shell inventory for hashes and counts.",
|
|
78
|
+
"handoff_artifact": "raw_data_manifest.md"
|
|
79
|
+
},
|
|
80
|
+
"review": {
|
|
81
|
+
"primary": ["research"],
|
|
82
|
+
"optional": [],
|
|
83
|
+
"fallback": "Review duplicate/version choices against file metadata and source content.",
|
|
84
|
+
"handoff_artifact": "ingestion_review.md"
|
|
85
|
+
},
|
|
86
|
+
"learn": {
|
|
87
|
+
"primary": ["build-loop:knowledge"],
|
|
88
|
+
"optional": [],
|
|
89
|
+
"fallback": "Append durable ingestion lessons to the report.",
|
|
90
|
+
"handoff_artifact": "ingestion_lessons.md"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"learn": {
|
|
94
|
+
"store": ["source_quirks", "dedupe_rules", "raw_data_rules", "uncertain_item_patterns"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Loop Spec Format
|
|
2
|
+
|
|
3
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
4
|
+
|
|
5
|
+
A focused-loop spec is the domain contract for a reusable workflow. The runner owns phase movement, validation order, iteration, gates, queues, and learn/memory. The spec owns the artifact vocabulary.
|
|
6
|
+
|
|
7
|
+
## Required Fields
|
|
8
|
+
|
|
9
|
+
| Field | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `schema_version` | Loop spec version. Start at `1`. |
|
|
12
|
+
| `id` | Kebab-case loop identifier. |
|
|
13
|
+
| `title` | Human-readable loop name. |
|
|
14
|
+
| `summary` | One-sentence purpose. |
|
|
15
|
+
| `inputs` | Accepted source materials or state surfaces. |
|
|
16
|
+
| `outputs` | Artifacts the loop produces. |
|
|
17
|
+
| `phases` | Domain-specific work contract per phase. |
|
|
18
|
+
| `validators` | Pass/fail checks used during review. |
|
|
19
|
+
| `gates` | Human confirmation boundaries. |
|
|
20
|
+
| `skill_chain` | Optional phase-to-skill routing plan. |
|
|
21
|
+
| `learn` | Durable reuse payload. |
|
|
22
|
+
|
|
23
|
+
## Skill Chain Shape
|
|
24
|
+
|
|
25
|
+
`skill_chain` is a plan for chaining specialized skills. It is advisory unless the runner or host can prove the named skill exists.
|
|
26
|
+
|
|
27
|
+
Each phase may declare:
|
|
28
|
+
|
|
29
|
+
| Field | Purpose |
|
|
30
|
+
|---|---|
|
|
31
|
+
| `primary` | Preferred skills for this phase. |
|
|
32
|
+
| `optional` | Skills to use when source type or scope warrants them. |
|
|
33
|
+
| `fallback` | What to do if the skill is unavailable. |
|
|
34
|
+
| `handoff_artifact` | Required output from the chained skill. |
|
|
35
|
+
|
|
36
|
+
Example:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
skill_chain:
|
|
40
|
+
intake:
|
|
41
|
+
primary:
|
|
42
|
+
- research
|
|
43
|
+
optional:
|
|
44
|
+
- doc
|
|
45
|
+
fallback: "Manual source inventory with cited file paths."
|
|
46
|
+
handoff_artifact: "source_inventory.md"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Gate Rules
|
|
50
|
+
|
|
51
|
+
Keep common gates centralized. Loop specs should name examples, not redefine policy.
|
|
52
|
+
|
|
53
|
+
Standard confirmation gates:
|
|
54
|
+
|
|
55
|
+
- external_send
|
|
56
|
+
- sensitive_data_exposure
|
|
57
|
+
- money_movement
|
|
58
|
+
- legal_or_compliance_assertion
|
|
59
|
+
- production_or_customer_operation
|
|
60
|
+
- people_impacting_decision
|
|
61
|
+
- irreversible_source_change
|
|
62
|
+
|
|
63
|
+
## Validator Rules
|
|
64
|
+
|
|
65
|
+
Validators should be binary. Avoid vague scores. If the check requires judgment, phrase it as a pass/fail rubric with named evidence.
|
|
66
|
+
|
|
67
|
+
Good:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
- id: source_trace
|
|
71
|
+
pass_condition: "Every material claim cites a source path, slide, row, transcript timestamp, or explicitly marked assumption."
|
|
72
|
+
method: "review"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Weak:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
- id: quality
|
|
79
|
+
pass_condition: "The artifact is good."
|
|
80
|
+
```
|