@event4u/agent-config 9.8.0 → 9.9.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +278 -298
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +55 -9
- package/dist/agent-src/commands/agents/audit.md +1 -1
- package/dist/agent-src/commands/agents/optimize.md +2 -2
- package/dist/agent-src/commands/agents/user.md +1 -1
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -3
- package/dist/agent-src/commands/fix/portability.md +2 -2
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -2
- package/dist/agent-src/commands/fix/route.md +4 -3
- package/dist/agent-src/commands/fix.md +9 -6
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/image.md +1 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +2 -2
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/research.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +4 -4
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/no-roadmap-references.md +1 -1
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/reviewer-awareness.md +1 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +7 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +10 -0
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/tool-safety.md +3 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +17 -14
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +5 -6
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/history-design/SKILL.md +101 -0
- package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
- package/dist/agent-src/skills/image-editing/SKILL.md +1 -1
- package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
- package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
- package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +3 -4
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +3 -3
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/rule.md +2 -2
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/dist/cli/commands/doctorShell.js +20 -0
- package/dist/cli/commands/doctorShell.js.map +1 -1
- package/dist/cli/commands/rtkDetect.js +58 -0
- package/dist/cli/commands/rtkDetect.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/main.js +35 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +7 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +362 -78
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +6 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +90 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +31 -7
- package/dist/hooks/dispatch.js +19475 -0
- package/dist/install/agentSwitchDetection.js +75 -0
- package/dist/install/agentSwitchDetection.js.map +1 -0
- package/dist/install/agentSwitchProfile.js +117 -0
- package/dist/install/agentSwitchProfile.js.map +1 -0
- package/dist/install/atomic.js +1 -1
- package/dist/install/detect.js +1 -1
- package/dist/install/install.mjs +775 -486
- package/dist/install/rtkDetection.js +213 -0
- package/dist/install/rtkDetection.js.map +1 -0
- package/dist/install/rule_scope.js +2 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/types.js +2 -2
- package/dist/install/wizard-plan.js +1 -1
- package/dist/install/wizardDismissals.js +58 -0
- package/dist/install/wizardDismissals.js.map +1 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +15 -4
- package/dist/mcp/server.json +20 -0
- package/dist/mcp/server.mjs +44292 -0
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +14 -7
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +4 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/io/sharedWriteCheck.js +101 -0
- package/dist/server/io/sharedWriteCheck.js.map +1 -0
- package/dist/server/routes/ping.js +14 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +21 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/userMd.js +21 -4
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +68 -25
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js +40 -0
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
- package/dist/ui/assets/index-jSfMW8_t.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +21 -11
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/config/agent-settings.template.yml +52 -14
- package/src/config/discovery/packs.yml +22 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +47 -0
- package/src/config/hook-latency-budget.json +20 -0
- package/src/install/agentSwitchDetection.ts +90 -0
- package/src/install/agentSwitchProfile.ts +131 -0
- package/src/install/atomic.ts +1 -1
- package/src/install/detect.ts +1 -1
- package/src/install/rtkDetection.ts +274 -0
- package/src/install/rule_scope.ts +9 -2
- package/src/install/types.ts +2 -2
- package/src/install/wizard-plan.ts +1 -1
- package/src/install/wizardDismissals.ts +60 -0
- package/src/scripts/_cli/cmd_doctor.ts +62 -1
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +81 -0
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
- package/src/scripts/_lib/auto_dispatch.ts +76 -0
- package/src/scripts/_lib/detect_target_license.ts +714 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +5 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +4 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
- package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
- package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
- package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
- package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
- package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
- package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
- package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
- package/src/scripts/_lib/persistence/types.ts +109 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +5 -0
- package/src/scripts/_lib/secret_detector.ts +9 -0
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
- package/src/scripts/_lib/spawn_env.ts +7 -0
- package/src/scripts/_lib/sqlite_guard.ts +191 -0
- package/src/scripts/_lib/subagent_spawn.ts +53 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/config.ts +12 -6
- package/src/scripts/ai_council/orchestrator.ts +73 -3
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +48 -0
- package/src/scripts/audit_initial_context.ts +1 -1
- package/src/scripts/bench_cross_source_eval.ts +400 -0
- package/src/scripts/bench_honesty_score.ts +1093 -0
- package/src/scripts/bench_hook_latency.ts +218 -0
- package/src/scripts/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +45 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_backstop_debt.ts +23 -13
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +181 -9
- package/src/scripts/code_graph/detect.ts +52 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/query.ts +143 -29
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/condense.ts +14 -6
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/council_cli.ts +126 -12
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +5 -3
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +55 -16
- package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
- package/src/scripts/hooks/block_no_verify.ts +9 -9
- package/src/scripts/hooks/code_graph_nudge_hook.ts +11 -4
- package/src/scripts/hooks/concern_registry.ts +75 -0
- package/src/scripts/hooks/design_slop_hook.ts +8 -5
- package/src/scripts/hooks/dispatch_entry.ts +37 -0
- package/src/scripts/hooks/dispatch_hook.ts +176 -3
- package/src/scripts/hooks/hook_stdin.ts +42 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
- package/src/scripts/hot_context_hook.ts +7 -6
- package/src/scripts/injection_scan_hook.ts +9 -1
- package/src/scripts/install +6 -6
- package/src/scripts/install-hooks.sh +4 -4
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_budget_ownership.ts +89 -0
- package/src/scripts/lint_command_routing.ts +35 -5
- package/src/scripts/lint_command_verbs.ts +42 -9
- package/src/scripts/lint_consumer_internal_refs.ts +211 -0
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_documented_commands.ts +670 -0
- package/src/scripts/lint_framework_leakage.ts +17 -3
- package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
- package/src/scripts/lint_governed_writes.ts +335 -0
- package/src/scripts/lint_hidden_unicode.ts +6 -0
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_override_kernel_guard.ts +74 -26
- package/src/scripts/lint_persistence.ts +171 -0
- package/src/scripts/lint_pre_migration_refs.ts +106 -0
- package/src/scripts/lint_provenance.ts +547 -0
- package/src/scripts/lint_provenance_vocabulary.ts +437 -0
- package/src/scripts/lint_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- package/src/scripts/lint_versioned_cache.ts +7 -1
- package/src/scripts/mcp_server/__main__.ts +7 -2
- package/src/scripts/mcp_server/catalog.ts +23 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
- package/src/scripts/mcp_server/prompts.ts +6 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
- package/src/scripts/mcp_server/tools.ts +56 -5
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/memory_learn_hook.ts +126 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/memory_replay_24.ts +312 -0
- package/src/scripts/memory_report.ts +16 -3
- package/src/scripts/memory_signal.ts +48 -0
- package/src/scripts/memory_status.ts +6 -0
- package/src/scripts/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- package/src/scripts/prepack-check.mjs +17 -0
- package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
- package/src/scripts/prepack_lifecycle_check.mjs +82 -0
- package/src/scripts/profile_staleness_hook.ts +8 -7
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/rule.schema.json +10 -0
- package/src/scripts/self_review_gate.test.ts +173 -1
- package/src/scripts/self_review_gate.ts +155 -15
- package/src/scripts/session_canary_hook.ts +182 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- package/src/scripts/surface_probe_hook.ts +8 -7
- package/src/scripts/sync_gitattributes.ts +310 -0
- package/src/scripts/team_review_gate_hook.ts +13 -16
- package/src/scripts/verify_before_complete_hook.ts +8 -5
- package/src/scripts/wrapper_freshness_hook.ts +8 -7
- package/src/server/schemas/settings.ts +8 -2
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-CrmZ34Rg.js +0 -40
- package/dist/ui/assets/index-CrmZ34Rg.js.map +0 -1
- package/docs/CLAIMS.md +0 -286
- package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
- package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
- package/docs/SKILL_CENSUS.md +0 -352
- package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
- package/docs/adrs/cost/README.md +0 -9
- package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
- package/docs/adrs/memory/README.md +0 -10
- package/docs/adrs/router/0001-three-tier-routing.md +0 -119
- package/docs/adrs/router/README.md +0 -9
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
- package/docs/adrs/schema/README.md +0 -9
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
- package/docs/adrs/smoke/README.md +0 -9
- package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
- package/docs/adrs/telegraph/README.md +0 -9
- package/docs/announcements/2026-05-non-dev-launch.md +0 -79
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
- package/docs/anti-reskin-gate.md +0 -60
- package/docs/architecture/augment-projection.md +0 -70
- package/docs/architecture/claude-bundle.md +0 -77
- package/docs/architecture/current-onboard-baseline.md +0 -126
- package/docs/architecture/current-safety-behavior.md +0 -137
- package/docs/architecture/multi-tool-projection.md +0 -125
- package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
- package/docs/architecture/source-projection.md +0 -85
- package/docs/architecture.md +0 -390
- package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
- package/docs/archive/CHANGELOG-7.0.0.md +0 -419
- package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
- package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
- package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
- package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
- package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
- package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
- package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
- package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
- package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
- package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
- package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
- package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
- package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
- package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
- package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
- package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
- package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
- package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
- package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
- package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
- package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
- package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
- package/docs/artefact-census.md +0 -71
- package/docs/benchmark.md +0 -785
- package/docs/benchmark.pinned.yml +0 -31
- package/docs/benchmarks.md +0 -85
- package/docs/capability-matrix.md +0 -33
- package/docs/case-studies/_template.md +0 -60
- package/docs/case-studies/frontend-design-positioning.md +0 -86
- package/docs/catalog.md +0 -726
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -87
- package/docs/contracts/CHANGELOG-conventions.md +0 -149
- package/docs/contracts/STABILITY.md +0 -188
- package/docs/contracts/adoption-signal-floor.md +0 -127
- package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
- package/docs/contracts/adr-chat-history-split.md +0 -140
- package/docs/contracts/adr-command-suggestion.md +0 -144
- package/docs/contracts/adr-forecast-construction-shape.md +0 -90
- package/docs/contracts/adr-gtm-context-spine.md +0 -116
- package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
- package/docs/contracts/adr-install-user-type-axis.md +0 -107
- package/docs/contracts/adr-layout.md +0 -107
- package/docs/contracts/adr-level-6-productization.md +0 -145
- package/docs/contracts/adr-mcp-runtime.md +0 -128
- package/docs/contracts/adr-product-ui-track.md +0 -381
- package/docs/contracts/adr-prompt-driven-execution.md +0 -186
- package/docs/contracts/adr-settings-sync-engine.md +0 -128
- package/docs/contracts/adr-user-types-axis.md +0 -127
- package/docs/contracts/adr-wing4-context-spine.md +0 -126
- package/docs/contracts/agent-user-schema.md +0 -170
- package/docs/contracts/agents-layout.md +0 -148
- package/docs/contracts/agents-md-tech-stack.md +0 -75
- package/docs/contracts/ai-council-config.md +0 -829
- package/docs/contracts/ai-team-config.md +0 -224
- package/docs/contracts/analysis-memory-loop.md +0 -149
- package/docs/contracts/at-rest-encryption.md +0 -191
- package/docs/contracts/audit-log-v1.md +0 -150
- package/docs/contracts/auto-orchestration-v1.md +0 -70
- package/docs/contracts/benchmark-ab-contract.md +0 -106
- package/docs/contracts/benchmark-corpus-spec.md +0 -125
- package/docs/contracts/benchmark-report-schema.md +0 -113
- package/docs/contracts/branch-protection-policy.md +0 -139
- package/docs/contracts/brand-token-consumption.md +0 -74
- package/docs/contracts/capability-boundary.md +0 -69
- package/docs/contracts/capability-packs.md +0 -217
- package/docs/contracts/ci-cost-budget.md +0 -111
- package/docs/contracts/ci-green-floor.md +0 -141
- package/docs/contracts/command-category-governance.md +0 -84
- package/docs/contracts/command-clusters.md +0 -399
- package/docs/contracts/command-surface-tiers.md +0 -176
- package/docs/contracts/command-taxonomy.md +0 -137
- package/docs/contracts/condensation-default-kill-criterion.md +0 -116
- package/docs/contracts/config-presets.md +0 -144
- package/docs/contracts/conformance.md +0 -84
- package/docs/contracts/consumer-bridge.md +0 -73
- package/docs/contracts/context-paths.md +0 -101
- package/docs/contracts/context-spine.md +0 -179
- package/docs/contracts/cost-dashboard.md +0 -143
- package/docs/contracts/cost-enforcement.md +0 -134
- package/docs/contracts/cost-profile-defaults.md +0 -110
- package/docs/contracts/cost-summary-schema.md +0 -107
- package/docs/contracts/creative-pack-boundary.md +0 -63
- package/docs/contracts/cross-repo-retrieval.md +0 -64
- package/docs/contracts/cross-wing-handoff.md +0 -134
- package/docs/contracts/daily-workspace.md +0 -147
- package/docs/contracts/decision-engine-gates.md +0 -120
- package/docs/contracts/decision-trace-v1.md +0 -177
- package/docs/contracts/design-artifact-lifecycle.md +0 -93
- package/docs/contracts/design-artifact-verification.md +0 -153
- package/docs/contracts/discovery-manifest.md +0 -209
- package/docs/contracts/discovery-manifest.schema.json +0 -254
- package/docs/contracts/evidence-based-pruning.md +0 -102
- package/docs/contracts/explain-modes.md +0 -187
- package/docs/contracts/explain-trace.schema.json +0 -144
- package/docs/contracts/file-ownership-matrix.json +0 -13941
- package/docs/contracts/file-ownership-matrix.md +0 -135
- package/docs/contracts/frontmatter-contract.md +0 -140
- package/docs/contracts/ghostwriter-schema.md +0 -337
- package/docs/contracts/governance-enforcement-projection.md +0 -159
- package/docs/contracts/gui-wizard.md +0 -350
- package/docs/contracts/harness-expectations.md +0 -128
- package/docs/contracts/hook-architecture-v1.md +0 -325
- package/docs/contracts/host-agent-protocol.md +0 -110
- package/docs/contracts/implement-ticket-flow.md +0 -625
- package/docs/contracts/init-telemetry.md +0 -132
- package/docs/contracts/injected-block-authenticity-model.md +0 -66
- package/docs/contracts/install-layout.md +0 -249
- package/docs/contracts/install-scopes.md +0 -82
- package/docs/contracts/installed-tools-lockfile.md +0 -144
- package/docs/contracts/installer-agent-mode.md +0 -137
- package/docs/contracts/iron-law-overrides.txt +0 -26
- package/docs/contracts/kernel-membership.md +0 -339
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
- package/docs/contracts/linear-ai-three-layers.md +0 -130
- package/docs/contracts/linter-structural-model.md +0 -181
- package/docs/contracts/load-context-budget-model.md +0 -259
- package/docs/contracts/load-context-schema.md +0 -220
- package/docs/contracts/local-analytics.md +0 -160
- package/docs/contracts/local-knowledge-ingestion.md +0 -96
- package/docs/contracts/local-server-api.md +0 -134
- package/docs/contracts/local-server-ports.md +0 -53
- package/docs/contracts/low-impact-corpus-format.md +0 -95
- package/docs/contracts/mcp-beta-criteria.md +0 -130
- package/docs/contracts/mcp-cloud-scope.md +0 -355
- package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
- package/docs/contracts/mcp-phase-1-scope.md +0 -272
- package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
- package/docs/contracts/mcp-tool-inventory.md +0 -64
- package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
- package/docs/contracts/measurement-baseline.md +0 -103
- package/docs/contracts/memory-visibility-v1.md +0 -160
- package/docs/contracts/mental-models.md +0 -336
- package/docs/contracts/migrate-command.md +0 -233
- package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
- package/docs/contracts/namespace.md +0 -125
- package/docs/contracts/no-runtime-boundary.md +0 -61
- package/docs/contracts/one-off-script-lifecycle.md +0 -110
- package/docs/contracts/orchestration-dsl-v1.md +0 -153
- package/docs/contracts/package-self-orientation.md +0 -163
- package/docs/contracts/pilot/agent-authority.md +0 -24
- package/docs/contracts/pilot/direct-answers.md +0 -70
- package/docs/contracts/pilot/language-and-tone.md +0 -63
- package/docs/contracts/plain-language-surface.md +0 -117
- package/docs/contracts/prelaunch-diagnostics.md +0 -151
- package/docs/contracts/profile-system.md +0 -167
- package/docs/contracts/reasoning-discipline-protocol.md +0 -83
- package/docs/contracts/release-pr-gating.md +0 -151
- package/docs/contracts/release-sizing.md +0 -107
- package/docs/contracts/release-trunk-sync.md +0 -105
- package/docs/contracts/review-lens-schema.md +0 -64
- package/docs/contracts/roadmap-complexity-standard.md +0 -138
- package/docs/contracts/role-experience.md +0 -125
- package/docs/contracts/router-blending.md +0 -71
- package/docs/contracts/rule-classification.md +0 -171
- package/docs/contracts/rule-interactions.md +0 -132
- package/docs/contracts/rule-interactions.yml +0 -260
- package/docs/contracts/rule-priority-hierarchy.md +0 -88
- package/docs/contracts/rule-router.md +0 -287
- package/docs/contracts/safety-model.md +0 -129
- package/docs/contracts/session-profile-overlay.md +0 -157
- package/docs/contracts/settings-api.md +0 -264
- package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
- package/docs/contracts/settings-sync-yaml-subset.md +0 -139
- package/docs/contracts/skill-bundled-assets.md +0 -62
- package/docs/contracts/skill-discovery.md +0 -80
- package/docs/contracts/skill-distribution-channels.md +0 -66
- package/docs/contracts/skill-domains.md +0 -144
- package/docs/contracts/skill-dry-run.md +0 -47
- package/docs/contracts/skill-family-map.yml +0 -915
- package/docs/contracts/smoke-contracts.md +0 -144
- package/docs/contracts/subagent-boundary.md +0 -74
- package/docs/contracts/surface-agent-contracts.md +0 -153
- package/docs/contracts/surface-matrix.md +0 -108
- package/docs/contracts/surface-tiers.md +0 -81
- package/docs/contracts/telegraph-telemetry.md +0 -83
- package/docs/contracts/ticket-bundle-format.md +0 -233
- package/docs/contracts/tier-3-contrib-plugin.md +0 -137
- package/docs/contracts/trust-and-safety.md +0 -144
- package/docs/contracts/ui-stack-extension.md +0 -237
- package/docs/contracts/ui-track-flow.md +0 -329
- package/docs/contracts/universal-skills.md +0 -91
- package/docs/contracts/user-type-schema.md +0 -146
- package/docs/contracts/value-dashboard-spec.md +0 -378
- package/docs/contracts/value-report-schema.md +0 -168
- package/docs/contracts/workflow-packs.md +0 -121
- package/docs/contracts/workspace-boundary.md +0 -84
- package/docs/contracts/workspace-documents.md +0 -144
- package/docs/contracts/write-engine.md +0 -182
- package/docs/cookbook.md +0 -152
- package/docs/customization.md +0 -696
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
- package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
- package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
- package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
- package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
- package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
- package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
- package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
- package/docs/decisions/ADR-016-installer-architecture.md +0 -191
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
- package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
- package/docs/decisions/ADR-021-deployment-shape.md +0 -153
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
- package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
- package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
- package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
- package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
- package/docs/decisions/ADR-028-root-layout.md +0 -147
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
- package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
- package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
- package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
- package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
- package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
- package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
- package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
- package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
- package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
- package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
- package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
- package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
- package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
- package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
- package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
- package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
- package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
- package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
- package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
- package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
- package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
- package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
- package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
- package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
- package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
- package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
- package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
- package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
- package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
- package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
- package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
- package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
- package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
- package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
- package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
- package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
- package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
- package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
- package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
- package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
- package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
- package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
- package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
- package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
- package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
- package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
- package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
- package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
- package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
- package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
- package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
- package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
- package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
- package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
- package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
- package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
- package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
- package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
- package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
- package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
- package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
- package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
- package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
- package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
- package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
- package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
- package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
- package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
- package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
- package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
- package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -248
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -112
- package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -209
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
- package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
- package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
- package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
- package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
- package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
- package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
- package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
- package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
- package/docs/decisions/ADR-124-embedded-engine-doctrine.md +0 -255
- package/docs/decisions/ADR-125-doc-screenshot-anonymization.md +0 -131
- package/docs/decisions/ADR-126-internet-reach-operator-tooling.md +0 -254
- package/docs/decisions/ADR-127-enforcement-claims-must-resolve.md +0 -150
- package/docs/decisions/ADR-128-executable-evidence-and-measured-escalation.md +0 -201
- package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
- package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
- package/docs/decisions/INDEX.md +0 -157
- package/docs/decisions/engine-reclassification-2026-07.md +0 -104
- package/docs/deploy/connector-setup.md +0 -129
- package/docs/deploy/env-vars.md +0 -70
- package/docs/deploy/policy-cookbook.md +0 -130
- package/docs/deploy/quickstart.md +0 -112
- package/docs/deploy/small-team-recipe.md +0 -148
- package/docs/deploy/team-deployment-posture.md +0 -111
- package/docs/design/adversarial-council-eval.md +0 -106
- package/docs/design/council-vs-solo-baseline.md +0 -92
- package/docs/design/cross-model-parity-eval.md +0 -82
- package/docs/design/length-neutral-judge-rerun.md +0 -92
- package/docs/design/utilization-window-criteria.md +0 -51
- package/docs/development.md +0 -230
- package/docs/distribution/awesome-list-submission.md +0 -46
- package/docs/distribution/consumer-matrix.md +0 -96
- package/docs/distribution/launch-story-draft.md +0 -58
- package/docs/distribution/mcp-submission-checklist.md +0 -95
- package/docs/distribution/public-install-smoke.md +0 -68
- package/docs/distribution/registries.md +0 -126
- package/docs/distribution/registry-submissions.md +0 -85
- package/docs/distribution/telemetry-privacy.md +0 -128
- package/docs/distribution/telemetry-schema.md +0 -174
- package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
- package/docs/end-to-end-walkthroughs.md +0 -165
- package/docs/enforcement-by-host.md +0 -51
- package/docs/examples/agent-user.example.md +0 -22
- package/docs/experiences/agency.md +0 -49
- package/docs/experiences/content_creator.md +0 -49
- package/docs/experiences/developer.md +0 -49
- package/docs/experiences/finance.md +0 -50
- package/docs/experiences/founder.md +0 -49
- package/docs/experiences/ops.md +0 -49
- package/docs/featured-commands.md +0 -27
- package/docs/featured-skills.md +0 -95
- package/docs/flows.md +0 -67
- package/docs/getting-started-by-role.md +0 -190
- package/docs/getting-started-laravel.md +0 -72
- package/docs/getting-started-local-stdio.md +0 -77
- package/docs/getting-started.md +0 -254
- package/docs/github-topics.md +0 -93
- package/docs/governance-advantage.md +0 -72
- package/docs/governance.md +0 -96
- package/docs/guides/cross-repo-linked-projects.md +0 -93
- package/docs/guides/cross-repo-retrieval.md +0 -61
- package/docs/guides/frontend-design-corpus-refresh.md +0 -83
- package/docs/guides/gated-platform-reads.md +0 -221
- package/docs/guides/local-analytics.md +0 -125
- package/docs/guides/local-knowledge.md +0 -127
- package/docs/guides/skill-discovery.md +0 -71
- package/docs/guides/skill-preview.md +0 -71
- package/docs/hook-payload-capture.md +0 -221
- package/docs/install-friction-report.md +0 -66
- package/docs/installation.md +0 -959
- package/docs/maintainers/branch-protection.md +0 -105
- package/docs/maintainers/dev-mode.md +0 -106
- package/docs/maintainers/optional-media-deps.md +0 -50
- package/docs/maintainers/system-map.md +0 -85
- package/docs/mcp-registries.md +0 -94
- package/docs/mcp-server.md +0 -175
- package/docs/mcp.md +0 -147
- package/docs/media/proof-demo.cast +0 -14
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +0 -145
- package/docs/migration/divergences/README.md +0 -55
- package/docs/migration/divergences/_template.md +0 -50
- package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
- package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
- package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
- package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
- package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
- package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
- package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
- package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
- package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
- package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
- package/docs/migration/node-floor.md +0 -86
- package/docs/migration/v1-to-v2.md +0 -156
- package/docs/migration/yaml-roundtrip-spike.md +0 -163
- package/docs/migrations/commands-1.15.0.md +0 -117
- package/docs/parity/bench-external.json +0 -58
- package/docs/parity/bench.json +0 -41
- package/docs/parity/command-frontmatter.md +0 -60
- package/docs/parity/external-runtime.md +0 -46
- package/docs/personas.md +0 -178
- package/docs/positioning-evidence.md +0 -86
- package/docs/profiles.md +0 -108
- package/docs/proof.md +0 -252
- package/docs/quality.md +0 -98
- package/docs/readme-split-plan.md +0 -102
- package/docs/recruits/_template.md +0 -81
- package/docs/release-runbook.md +0 -141
- package/docs/role-experiences.md +0 -19
- package/docs/safety.md +0 -30
- package/docs/second-brain-scope.md +0 -116
- package/docs/self-review-gate.md +0 -65
- package/docs/setup/enterprise-and-offline.md +0 -201
- package/docs/setup/mcp-client-config.md +0 -358
- package/docs/setup/mcp-cloud-endpoints.md +0 -116
- package/docs/setup/mcp-cloud-registry-listing.md +0 -99
- package/docs/setup/mcp-cloud-setup.md +0 -183
- package/docs/setup/mcp-r2-bootstrap.md +0 -82
- package/docs/setup/mcp-server-docker.md +0 -101
- package/docs/setup/per-ide/aider.md +0 -48
- package/docs/setup/per-ide/antigravity.md +0 -68
- package/docs/setup/per-ide/augment.md +0 -89
- package/docs/setup/per-ide/claude-code.md +0 -97
- package/docs/setup/per-ide/claude-desktop.md +0 -207
- package/docs/setup/per-ide/cline.md +0 -43
- package/docs/setup/per-ide/codebuddy.md +0 -63
- package/docs/setup/per-ide/codex.md +0 -46
- package/docs/setup/per-ide/continue.md +0 -68
- package/docs/setup/per-ide/copilot.md +0 -80
- package/docs/setup/per-ide/cursor.md +0 -125
- package/docs/setup/per-ide/droid.md +0 -65
- package/docs/setup/per-ide/gemini-cli.md +0 -45
- package/docs/setup/per-ide/jetbrains.md +0 -76
- package/docs/setup/per-ide/kilocode.md +0 -66
- package/docs/setup/per-ide/kiro.md +0 -72
- package/docs/setup/per-ide/opencode.md +0 -62
- package/docs/setup/per-ide/qoder.md +0 -63
- package/docs/setup/per-ide/roocode.md +0 -68
- package/docs/setup/per-ide/trae.md +0 -63
- package/docs/setup/per-ide/warp.md +0 -63
- package/docs/setup/per-ide/windsurf.md +0 -109
- package/docs/setup/per-ide/zed.md +0 -73
- package/docs/showcase.md +0 -209
- package/docs/skill-duplication-findings.md +0 -91
- package/docs/skills-catalog.md +0 -265
- package/docs/skills-taxonomy.md +0 -90
- package/docs/spawn-site-policy.md +0 -72
- package/docs/succession.md +0 -80
- package/docs/threat-model.md +0 -30
- package/docs/troubleshooting.md +0 -155
- package/docs/ui-track-mental-model.md +0 -121
- package/docs/us-vs-the-category.md +0 -38
- package/docs/value.md +0 -86
- package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
- package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
- package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
- package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
- package/docs/walkthroughs/daily-workspace.md +0 -127
- package/docs/wedge/production-validator/README.md +0 -81
- package/docs/wedge/production-validator/first-run-check.sh +0 -42
- package/docs/wedge/production-validator/production-validator.md +0 -83
- package/docs/wizard.md +0 -173
- package/src/scripts/postinstall_gui.ts +0 -129
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-09-04
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Branch Protection Policy
|
|
7
|
-
|
|
8
|
-
> **Status:** active · **Owner:** maintainer (GitHub UI ruleset) ·
|
|
9
|
-
> **Opened:** 2026-05-26
|
|
10
|
-
>
|
|
11
|
-
> Codifies the per-PR-shape required-status-check floor. Companion to
|
|
12
|
-
> [`release-pr-gating.md`](release-pr-gating.md) (Phase A) and
|
|
13
|
-
> [`ci-cost-budget.md`](ci-cost-budget.md) (Phase C). Branch protection
|
|
14
|
-
> itself is applied by the maintainer in the GitHub Settings → Rules UI;
|
|
15
|
-
> this doc is the source of truth the UI mirrors.
|
|
16
|
-
|
|
17
|
-
## The floor
|
|
18
|
-
|
|
19
|
-
Every PR proves a floor of CI checks before it can merge. The floor differs
|
|
20
|
-
by **PR shape** — a feature PR proves more (it carries runtime / install
|
|
21
|
-
risk) than a release PR (whose diff is structurally limited to version
|
|
22
|
-
bumps). Shape is detected by the same predicates documented in
|
|
23
|
-
`release-pr-gating.md`; the workflows enforce the cut.
|
|
24
|
-
|
|
25
|
-
The optimisation is **never** subtractive: a PR whose shape can't be proved
|
|
26
|
-
falls back to the full feature-PR floor. The cut is opt-in per push, not
|
|
27
|
-
per branch name.
|
|
28
|
-
|
|
29
|
-
## Per-PR-shape required-check matrix
|
|
30
|
-
|
|
31
|
-
| Required check | Feature PR | Release PR | Docs-only PR |
|
|
32
|
-
|---|:---:|:---:|:---:|
|
|
33
|
-
| `Consistency` | ✅ | ✅ | ✅ |
|
|
34
|
-
| `Smoke Contracts` (smoke.yml) | ✅ | ✅ | ✅ |
|
|
35
|
-
| `Skill Lint` | ✅ | — | — |
|
|
36
|
-
| `Tests / install-tests (ubuntu)` | ✅ | — | — |
|
|
37
|
-
| `Tests / install-tests (macos)` | ✅ | — | — |
|
|
38
|
-
| `Tests / install-aux-tests (ubuntu)` | ✅ | — | — |
|
|
39
|
-
| `Tests / install-aux-tests (macos)` | ✅ | — | — |
|
|
40
|
-
| `Tests / python-tests (ubuntu × 3.10–3.13)` | ✅ | — | — |
|
|
41
|
-
| `Tests / python-tests (macos × 3.12)` | ✅ | — | — |
|
|
42
|
-
| `Tests / node-tests (ubuntu)` | ✅ | — | — |
|
|
43
|
-
| `Tests / node-tests (macos)` | ✅ | — | — |
|
|
44
|
-
| `Tests / windows-lockfile-export` | path-filter only | — | — |
|
|
45
|
-
| `Public Install Smoke / smoke (matrix)` | ✅ | — | — |
|
|
46
|
-
| `Release Validation / release-shape` | — | ✅ | — |
|
|
47
|
-
| `Release Validation / changelog-entry` | — | ✅ | — |
|
|
48
|
-
| `Release Validation / version-consistency` | — | ✅ | — |
|
|
49
|
-
| `Migration Dry-Run` | path-filter only | path-filter only | — |
|
|
50
|
-
| `Release Guard` (tag-trigger) | — | (post-merge tag) | — |
|
|
51
|
-
|
|
52
|
-
**Definitions:**
|
|
53
|
-
|
|
54
|
-
- **Feature PR** — head branch does not match `release/X.Y.Z` (the default).
|
|
55
|
-
- **Release PR** — head branch matches `^release/\d+\.\d+\.\d+$` AND the
|
|
56
|
-
diff stays within the version-bump allowlist (see `release-pr-gating.md`).
|
|
57
|
-
Either condition failing falls the PR back to feature-PR mode. Author is
|
|
58
|
-
either a maintainer (`task release`) or `github-actions[bot]` (the
|
|
59
|
-
`release`-labeled-PR CI path, `.github/workflows/release.yml`) — the
|
|
60
|
-
shape checks are author-agnostic. Verified live: this repo's branch
|
|
61
|
-
protection requires zero approving reviews and exactly one status check
|
|
62
|
-
(`Sync + Generate Tools Consistency`); the bot path's real friction is
|
|
63
|
-
GitHub's separate bot-created-PR approval gate, not a review requirement
|
|
64
|
-
— see [`ADR-113`](../decisions/ADR-113-ci-native-release-label-trigger.md).
|
|
65
|
-
- **Docs-only PR** — diff is entirely inside `docs/**` or matches only
|
|
66
|
-
top-level Markdown (`README.md`, `CHANGELOG.md`, `CONTRIBUTING.md`,
|
|
67
|
-
`AGENTS.md`). No code, tests, workflows, or scripts. This shape is
|
|
68
|
-
detected by an opt-in linter (`task ci:required-checks`); branch
|
|
69
|
-
protection still defaults to the feature-PR floor unless the linter
|
|
70
|
-
asserts the docs-only shape.
|
|
71
|
-
|
|
72
|
-
## Failure mode — the cut never silently lifts
|
|
73
|
-
|
|
74
|
-
If a release-PR's diff exits the allowlist mid-stream (e.g. a last-minute
|
|
75
|
-
CHANGELOG fixup that also touches `src/scripts/release.ts`):
|
|
76
|
-
|
|
77
|
-
1. `Release Validation / release-shape` exits non-zero.
|
|
78
|
-
2. The required-check set for the PR effectively flips back to the
|
|
79
|
-
feature-PR floor because:
|
|
80
|
-
- `tests.yml` / `smoke-public-install.yml` jobs carry
|
|
81
|
-
`if: !startsWith(github.head_ref, 'release/')`, so they still skip on
|
|
82
|
-
the branch name — but
|
|
83
|
-
- the maintainer is expected to either narrow the diff (move the
|
|
84
|
-
out-of-shape edit to a separate PR) or close-and-reopen the release
|
|
85
|
-
PR off a freshly-bumped branch so the heavy matrix runs.
|
|
86
|
-
3. Branch protection still blocks the merge because `release-shape` is red.
|
|
87
|
-
|
|
88
|
-
The branch name alone never bypasses the heavy matrix — the diff has to
|
|
89
|
-
prove it can't regress runtime / install paths.
|
|
90
|
-
|
|
91
|
-
## Why path-filter only for some checks
|
|
92
|
-
|
|
93
|
-
`Tests / windows-lockfile-export` and `Migration Dry-Run` are path-filtered
|
|
94
|
-
at the workflow level (not branch-protection level). They run on every PR
|
|
95
|
-
whose diff hits their declared paths and skip on every other PR. Branch
|
|
96
|
-
protection lists them as "must pass if they run" — the GitHub Rules UI
|
|
97
|
-
under "Required status checks" honours this when "Require branches to be
|
|
98
|
-
up to date before merging" is enabled and the check's most recent run
|
|
99
|
-
on the head SHA is green.
|
|
100
|
-
|
|
101
|
-
## Addendum — `python2ts` integration branch (py2ts migration)
|
|
102
|
-
|
|
103
|
-
> Added 2026-06-11 for the Python → TypeScript migration (roadmap
|
|
104
|
-
> `road-to-typescript-only-scripts.md`, Phase 1). Lives until the
|
|
105
|
-
> migration completes; applied by the maintainer in the same Rules UI.
|
|
106
|
-
|
|
107
|
-
The `python2ts` branch is the working trunk of the migration and carries
|
|
108
|
-
its own protection rules:
|
|
109
|
-
|
|
110
|
-
- **PRs only, no force-push, no deletion** — direct commits are blocked;
|
|
111
|
-
the scheduled `py2ts-main-sync.yml` workflow is the single sanctioned
|
|
112
|
-
direct-push writer (clean `main → python2ts` merges only; conflicts go
|
|
113
|
-
through the `sync/main-into-python2ts` PR instead).
|
|
114
|
-
- **Required checks** — the full feature-PR floor (matrix above) plus
|
|
115
|
-
`py2ts Base Guard / py2ts-base-guard`.
|
|
116
|
-
- **Migration PRs never target `main`** — a head branch matching
|
|
117
|
-
`^(feat|fix|chore)/py2ts-` or `^py2ts` must base on `python2ts`; the
|
|
118
|
-
base guard fails the PR otherwise. The inverse direction (non-py2ts
|
|
119
|
-
head targeting `python2ts`) only warns — sync PRs and hotfixes are
|
|
120
|
-
legitimate.
|
|
121
|
-
- **Drift surfacing** — `py2ts-drift.yml` comments nightly on open
|
|
122
|
-
migration PRs whose touched `.py` files changed on `python2ts` since
|
|
123
|
-
the merge-base; such PRs rebase before merge.
|
|
124
|
-
- **Final `python2ts → main` merge is user-owned** — Hard Floor
|
|
125
|
-
(production-trunk merge, explicit per-turn confirmation); never a
|
|
126
|
-
workflow, bot, or roadmap step.
|
|
127
|
-
|
|
128
|
-
## See also
|
|
129
|
-
|
|
130
|
-
- [`release-pr-gating.md`](release-pr-gating.md) — shape predicates, cut
|
|
131
|
-
surface, kept surface, fail-closed contract.
|
|
132
|
-
- [`ci-cost-budget.md`](ci-cost-budget.md) — measured baseline durations
|
|
133
|
-
per job + quarterly review cadence (Phase C).
|
|
134
|
-
- `.github/workflows/release-validation.yml` — the three release-PR jobs.
|
|
135
|
-
- `src/scripts/check_release_pr_shape.ts` — the shape detector.
|
|
136
|
-
- `src/scripts/release.ts` — emits release PRs (both entry points); release
|
|
137
|
-
cadence stays driven by Conventional Commits, not CI cost.
|
|
138
|
-
- [`ADR-113`](../decisions/ADR-113-ci-native-release-label-trigger.md) — the
|
|
139
|
-
CI-native (`release`-label) entry point and the bot-PR-approval finding.
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-08-17
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Brand-Token Consumption Contract (greenfield interface stub)
|
|
7
|
-
|
|
8
|
-
> **Status:** interface stub. This contract is the **only** greenfield surface
|
|
9
|
-
> shipped by `road-to-image-brand-typography` (Phase B.3, decision 2). The
|
|
10
|
-
> Lovable-style `scaffold` work-engine directive that *consumes* it ships in the
|
|
11
|
-
> sibling `road-to-greenfield-scaffold.md` — **no `scaffold.py` lives here.**
|
|
12
|
-
> This doc exists so brand→token output is not dead output: it publishes the
|
|
13
|
-
> shape a scaffold step reads, and the `mixed`-set routing hook, against a frozen
|
|
14
|
-
> interface a later roadmap can build to.
|
|
15
|
-
|
|
16
|
-
## 1 — What a scaffold step reads
|
|
17
|
-
|
|
18
|
-
A greenfield scaffold step consumes a brand profile through two artifacts that
|
|
19
|
-
pack-brand already produces — it does **not** call any pack-brand skill at
|
|
20
|
-
build time:
|
|
21
|
-
|
|
22
|
-
| Artifact | Producer | Shape |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| `.tokens.json` | [`brand-to-tokens`](../../src/skills/brand-to-tokens/SKILL.md) | DTCG (`$value` / `$type`) token tree — colour, type, spacing, radius. The same file `design-tokens/scripts/tokens.py` emits CSS vars + Tailwind from. |
|
|
25
|
-
| voice profile | [`brand-strategy`](../../src/skills/brand-strategy/SKILL.md) / [`brand-identity`](../../src/skills/brand-identity/SKILL.md) | the confirmed voice traits + do/don't (3-5 traits) used to seed microcopy register. |
|
|
26
|
-
|
|
27
|
-
**Read contract (frozen v1):**
|
|
28
|
-
|
|
29
|
-
- The scaffold step reads `.tokens.json` as a DTCG document — never a
|
|
30
|
-
pack-brand-internal format. Style Dictionary / Tokens Studio round-trip is the
|
|
31
|
-
sanctioned external transform.
|
|
32
|
-
- It reads the voice profile as a list of `{trait, do, don't}` records.
|
|
33
|
-
- Absence of either artifact is **not an error** — it means greenfield with no
|
|
34
|
-
brand layer. The scaffold step then proceeds on the brief and SHOULD invoke
|
|
35
|
-
`brand-strategy` / `brand-identity` to define the tokens first (graceful, like
|
|
36
|
-
the brand-asset generation fallback). The scaffold never invents tokens
|
|
37
|
-
silently.
|
|
38
|
-
|
|
39
|
-
## 2 — The `mixed`-set routing hook
|
|
40
|
-
|
|
41
|
-
A greenfield request can arrive as one of three set-shapes; the routing hook
|
|
42
|
-
names which path the scaffold takes:
|
|
43
|
-
|
|
44
|
-
| Set | Meaning | Brand-token behaviour |
|
|
45
|
-
|---|---|---|
|
|
46
|
-
| `branded` | a brand profile (`.tokens.json` + voice) exists | consume tokens; `brand-consistency` gates emitted artifacts. |
|
|
47
|
-
| `bare` | no brand layer, none requested | scaffold on neutral defaults; no brand gate. |
|
|
48
|
-
| `mixed` | partial brand (some tokens, no voice; or voice, no tokens) | consume what exists; **route the gaps** to `brand-identity` to define the missing slice before emitting, then re-read `.tokens.json`. |
|
|
49
|
-
|
|
50
|
-
The `mixed` path is the load-bearing one: it prevents a scaffold from either
|
|
51
|
-
ignoring a partial brand or hard-failing on an incomplete one. The sibling
|
|
52
|
-
scaffold roadmap implements the directive; this contract fixes the hook's
|
|
53
|
-
inputs/outputs so that implementation has a stable target.
|
|
54
|
-
|
|
55
|
-
## 3 — Direction of dependency (do not invert)
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
pack-brand EXPORTS .tokens.json + voice profile
|
|
59
|
-
│
|
|
60
|
-
▼ (read-only, build time)
|
|
61
|
-
greenfield scaffold step (sibling roadmap) and pack-ai-image generation
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
The scaffold and pack-ai-image generation **consume** brand tokens; they never
|
|
65
|
-
write back into pack-brand. Generation does not live in pack-brand (that would
|
|
66
|
-
be a God-object — decision 1). This contract is read-only from the consumer
|
|
67
|
-
side.
|
|
68
|
-
|
|
69
|
-
## See also
|
|
70
|
-
|
|
71
|
-
- [`brand-to-tokens`](../../src/skills/brand-to-tokens/SKILL.md) — emits the `.tokens.json` source of truth.
|
|
72
|
-
- [`brand-consistency`](../../src/rules/brand-consistency.md) — the gate that runs on the `branded` / `mixed` paths.
|
|
73
|
-
- [`design-tokens`](../../src/skills/design-tokens/SKILL.md) — DTCG token authoring + CSS/Tailwind emission.
|
|
74
|
-
- `road-to-greenfield-scaffold.md` (sibling roadmap) — the scaffold directive that consumes this contract.
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-08-17
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Capability Boundary Matrix
|
|
7
|
-
|
|
8
|
-
The per-pack safety posture at a glance: is a pack on by default, does it need
|
|
9
|
-
consent, a council pass, a disclaimer, an eval — and how risky is it. The matrix
|
|
10
|
-
makes the invisible visible; the **enforcement** lives in the per-pack safety
|
|
11
|
-
floors + gates (this doc is the map, not the engine).
|
|
12
|
-
|
|
13
|
-
> Source of truth: `src/config/discovery/packs.yml` (`surface_tier`,
|
|
14
|
-
> `trust_level_default`, `domain`, and the legal-review-prep gate fields) + the
|
|
15
|
-
> domain safety-floor rules. Built in `road-to-capability-governance` Phase 1;
|
|
16
|
-
> `risk_class` becomes a real pack field in Phase 2.
|
|
17
|
-
|
|
18
|
-
## Policy by risk class
|
|
19
|
-
|
|
20
|
-
| `risk_class` | default install | consent | council / deep-research | disclaimer | eval expectation | surface_tier |
|
|
21
|
-
|---|---|---|---|---|---|---|
|
|
22
|
-
| **low** | per profile | no | no | no | optional | `core` |
|
|
23
|
-
| **medium** (advisory) | per profile | no | no | **yes** (domain safety floor) | recommended | `core` |
|
|
24
|
-
| **high** | **no** (opt-in) | **yes** | **yes** (fail-closed) | **yes** | **yes** | `lab` |
|
|
25
|
-
|
|
26
|
-
- **low** — engineering, product, meta, and tooling packs. Normal capability; no domain liability surface.
|
|
27
|
-
- **medium (advisory)** — packs that emit advisory-shaped output (finance, strategy). They carry a **domain safety floor** that mandates a not-X-advice disclaimer + structural elements (assumptions / counter-case / confidence). Not off-by-default, but never a final call.
|
|
28
|
-
- **high** — regulated-advice-adjacent. Off by default, consent-gated, council-gated (fail-closed), disclaimer-bound, eval-backed, lab-tier, and promotion-gated behind a professional review.
|
|
29
|
-
|
|
30
|
-
## Per-pack assignment (non-low)
|
|
31
|
-
|
|
32
|
-
| Pack | `risk_class` | Floor | Gates |
|
|
33
|
-
|---|---|---|---|
|
|
34
|
-
| `legal-review-prep` | **high** | `legal-safety-floor` | consent (`legal_review_prep.acknowledged`) · council (`require_council`, fail-closed) · hard individual-case STOP · attorney-review line + `Jurisdiction:` tag · attorney-framing-review promotion tripwire · `default_install: false` · `surface_tier: lab` |
|
|
35
|
-
| `finance-basic` | medium | `finance-safety-floor` | not-financial-advice disclaimer · assumptions + sensitivity + confidence + counter-case · no final invest/raise call |
|
|
36
|
-
| `finance-advanced` | medium | `finance-safety-floor` | as finance-basic (DCF / scenario depth) |
|
|
37
|
-
| `founder-strategy` | medium | `strategy-safety-floor` | not-a-strategic-decision footer · bet + counter-case + residual risk + decision owner |
|
|
38
|
-
|
|
39
|
-
Every other pack in `packs.yml` is **low** by default. A pack moves to medium the
|
|
40
|
-
moment it ships advisory-shaped output behind a domain safety floor, and to high
|
|
41
|
-
only through the high-risk checklist (consent + council + disclaimer + eval +
|
|
42
|
-
lab + promotion gate) — see `road-to-legal-review-prep` for the worked example.
|
|
43
|
-
|
|
44
|
-
## Capability lifecycle (a view, not a new axis)
|
|
45
|
-
|
|
46
|
-
Reviewers wanted one lifecycle vocabulary for promoting / retiring capabilities.
|
|
47
|
-
This is a **derived view** over the metadata that already exists
|
|
48
|
-
(`trust_level_default` + `surface_tier` + eval presence) — **not** a new field.
|
|
49
|
-
Nothing to set; it is read off what is already there.
|
|
50
|
-
|
|
51
|
-
| Lifecycle | Derived from | Promotion criterion (to reach it) |
|
|
52
|
-
|---|---|---|
|
|
53
|
-
| **experimental** | `surface_tier: lab` **or** `trust_level_default: experimental` | default for any new pack/skill |
|
|
54
|
-
| **validated** | `surface_tier: core` **and** has an `evals/` (or regression harness) | a real eval exists + the pack left lab |
|
|
55
|
-
| **recommended** | validated **and** in a default profile / ≥1 real consumer | adoption evidence, not just existence |
|
|
56
|
-
| **deprecated** | a `deprecated`/`superseded_by` marker in frontmatter | a successor named (per the persona/skill deprecation discipline) |
|
|
57
|
-
|
|
58
|
-
Read the lifecycle column off the matrix above: a `lab` + `experimental` pack
|
|
59
|
-
(e.g. `legal-review-prep`, `ai-video`) is **experimental**; a `core` pack with an
|
|
60
|
-
eval is **validated**; a `core` pack a profile ships is **recommended**.
|
|
61
|
-
Promotion stays a human/maintainer decision (criteria-documented, never
|
|
62
|
-
automated — see `road-to-capability-governance` Phase 6).
|
|
63
|
-
|
|
64
|
-
## See also
|
|
65
|
-
|
|
66
|
-
- [`legal-safety-floor`](../../src/rules/legal-safety-floor.md) — the high-risk exemplar.
|
|
67
|
-
- `finance-safety-floor` · `strategy-safety-floor` — the medium-risk advisory floors.
|
|
68
|
-
- [`domain-pack-architecture`](../guidelines/agent-infra/domain-pack-architecture.md) — the pack build sequence.
|
|
69
|
-
- `road-to-capability-governance` Phase 2 — `risk_class` as a validated pack field.
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-09-02
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Capability packs
|
|
7
|
-
|
|
8
|
-
> **Status:** beta — first draft 2026-06-02 (Phase 0 of
|
|
9
|
-
> [`road-to-6.0.0-b-pack-scoped-projection.md`](../../agents/roadmaps/road-to-6.0.0-b-pack-scoped-projection.md)).
|
|
10
|
-
> Formalizes the capability-pack layer so the 6.0.0-B projection filtering
|
|
11
|
-
> and the 6.0.0-C per-pack budget lint have a manifest with a size class to
|
|
12
|
-
> read.
|
|
13
|
-
|
|
14
|
-
A **capability pack** is the domain grouping a single artefact declares it
|
|
15
|
-
belongs to — the value carried in a skill's or command's `packs:` frontmatter
|
|
16
|
-
(e.g. `laravel`, `php`, `finance-basic`, `ai-video`). It answers *"which
|
|
17
|
-
vertical does this artefact serve?"* It is the unit the projector filters on
|
|
18
|
-
when a profile is active (6.0.0-B) and the unit the per-pack command budget is
|
|
19
|
-
enforced against (6.0.0-C).
|
|
20
|
-
|
|
21
|
-
## Capability pack vs. workflow pack — two distinct layers
|
|
22
|
-
|
|
23
|
-
These are **different things** and must not be conflated:
|
|
24
|
-
|
|
25
|
-
| | Capability pack | Workflow pack |
|
|
26
|
-
|---|---|---|
|
|
27
|
-
| **What** | A domain grouping (`packs:` tag on an artefact). | A curated bundle (`profile + preset + surface allowlist`). |
|
|
28
|
-
| **Granularity** | Per-artefact ownership. | Per-audience composition. |
|
|
29
|
-
| **Source of truth** | `src/config/discovery/packs.yml` (this contract). | `.agent-src.uncondensed/packs/<id>.yml` ([`workflow-packs`](workflow-packs.md)). |
|
|
30
|
-
| **Cardinality** | ~19 in use today. | 3 seed bundles (`founder-mvp`, `content-engine`, `agency-delivery`). |
|
|
31
|
-
| **Consumed by** | Projection filtering (6.0.0-B), per-pack budget lint (6.0.0-C), the pack-dependency graph. | The onboarding wizard's first-screen surface rendering. |
|
|
32
|
-
|
|
33
|
-
A workflow pack *references* capability packs indirectly (through the profile
|
|
34
|
-
it composes); a capability pack knows nothing about workflow packs. When this
|
|
35
|
-
document says "pack" unqualified, it means **capability pack**.
|
|
36
|
-
|
|
37
|
-
## Registry — extend the existing vocabulary, do not fork it
|
|
38
|
-
|
|
39
|
-
Capability packs already exist as the closed discovery vocabulary at
|
|
40
|
-
`src/config/discovery/packs.yml`, governed by
|
|
41
|
-
[`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md) § packs.
|
|
42
|
-
This contract **formalizes that file as the capability-pack registry** — it
|
|
43
|
-
does not introduce a parallel catalog. Phase 0 extends each entry with the
|
|
44
|
-
three new fields below; the existing fields keep their ADR-013 meaning.
|
|
45
|
-
|
|
46
|
-
### Manifest shape
|
|
47
|
-
|
|
48
|
-
```yaml
|
|
49
|
-
# src/config/discovery/packs.yml — one entry per capability pack
|
|
50
|
-
- id: laravel # kebab-case; matches the `packs:` tag
|
|
51
|
-
label: Laravel # human-readable (existing, ADR-013)
|
|
52
|
-
description: Laravel framework patterns; depends on PHP.
|
|
53
|
-
workspaces: [engineering] # discovery axis (existing, ADR-013)
|
|
54
|
-
trust_level_default: professional # existing, ADR-013
|
|
55
|
-
domain: engineering # NEW — the single primary vertical
|
|
56
|
-
size_class: medium # NEW — budget input (see table)
|
|
57
|
-
requires: [php, engineering-base] # NEW — hard dependency edges
|
|
58
|
-
suggests: [api, ui] # NEW — soft companion edges
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Field semantics
|
|
62
|
-
|
|
63
|
-
| Field | Type | Required | Notes |
|
|
64
|
-
|---|---|:-:|---|
|
|
65
|
-
| `id` | string | yes | kebab-case; matches the artefact `packs:` tag. No collision with a workflow-pack, profile, or preset id. |
|
|
66
|
-
| `label` | string | yes | Existing ADR-013 field. |
|
|
67
|
-
| `description` | string | yes | Existing ADR-013 field. |
|
|
68
|
-
| `workspaces` | list[string] | yes | Existing ADR-013 discovery axis — the workspace tiles a pack surfaces under. A pack may serve several workspaces. |
|
|
69
|
-
| `trust_level_default` | enum | yes | Existing ADR-013 field (`core` / `professional` / `experimental`). |
|
|
70
|
-
| `domain` | string | in-use | **NEW.** The single primary vertical the pack belongs to (`engineering`, `product`, `finance`, `gtm`, `ops`, `founder`, `media`, `meta`, `fun`). Distinct from `workspaces` (a list of surfacing tiles): `domain` is the one canonical home used for the per-domain reasoning the persona/skill governance leans on; `workspaces` is where it *shows up*. **Co-required with `size_class`** — both present on an in-use pack, both absent on a reserved-unused vocab id. |
|
|
71
|
-
| `size_class` | enum | in-use | **NEW.** `core` / `small` / `medium` / `large` / `platform`. The input the 6.0.0-C per-pack **visible-command** budget lint reads. Co-required with `domain`. Required for every in-use pack; absent on reserved vocab ids with zero artefacts (assigning it would fail the orphan-manifest determinism check). |
|
|
72
|
-
| `always_on` | bool | no | **NEW.** When `true`, the pack loader (6.0.0-B Phase 3) includes this pack's artefacts in **every** projection, regardless of the selected profile / workspace / pack set. Default `false` (absent). See "Always-on packs" below. |
|
|
73
|
-
| `requires` | list[id] | no | **NEW.** Hard dependency edges — packs whose artefacts must be present for this pack to function (e.g. `laravel.requires = [php, engineering-base]`). Formalizes the advisory `requires_hint` from ADR-013; once a manifest carries `requires`, `requires_hint` is the deprecated alias. Default `[]`. |
|
|
74
|
-
| `suggests` | list[id] | no | **NEW.** Soft companion edges — packs commonly installed together but not mandatory (e.g. `laravel.suggests = [api, ui]`). Advisory; the resolver MAY surface them, never auto-installs. Default `[]`. |
|
|
75
|
-
|
|
76
|
-
`cluster:` and `onboarding:` (ADR-013) remain valid optional fields and are
|
|
77
|
-
out of scope for this contract.
|
|
78
|
-
|
|
79
|
-
## Size class → visible-command budget
|
|
80
|
-
|
|
81
|
-
`size_class` exists so the 6.0.0-C budget lint can cap how many **visible**
|
|
82
|
-
(`visibility: visible` + `advanced`) commands a pack surfaces. `internal`
|
|
83
|
-
commands are the composition layer and are **uncapped** — capping them kills
|
|
84
|
-
composability (council, 2026-06-02).
|
|
85
|
-
|
|
86
|
-
| `size_class` | Visible-command budget | Intended for |
|
|
87
|
-
|---|:-:|---|
|
|
88
|
-
| `core` | ≤ 8 | Always-relevant base packs (`engineering-base`, `meta`). |
|
|
89
|
-
| `small` | ≤ 2 | Narrow single-purpose packs (`fun`, `python`). |
|
|
90
|
-
| `medium` | ≤ 5 | Standard framework / domain packs (`laravel`, `gtm-sales`). |
|
|
91
|
-
| `large` | ≤ 8 | Broad multi-surface packs (`ai-video`). |
|
|
92
|
-
| `platform` | ≤ 10 | Cross-cutting platform packs spanning many surfaces. |
|
|
93
|
-
|
|
94
|
-
> The **budget table is owned here** (size_class definition); the **enforcement
|
|
95
|
-
> lint** is defined and wired into CI by 6.0.0-C Phase 1. This contract assigns
|
|
96
|
-
> the class; the lint reads it. No pack is classified by guess — Phase 0 Step
|
|
97
|
-
> 0.2 assigns each in-use pack a class, reviewed at PR time.
|
|
98
|
-
|
|
99
|
-
## Budget exemption process
|
|
100
|
-
|
|
101
|
-
The budget is a **hard cap with an explicit exemption path**, not a
|
|
102
|
-
weighted/dynamic cap. The council (2026-06-02) was decisive: dynamic caps are
|
|
103
|
-
"governance-by-algorithm and get gamed at the meta level". A pack that needs to
|
|
104
|
-
exceed its `size_class` budget earns the exemption through a documented
|
|
105
|
-
decision, never through a formula.
|
|
106
|
-
|
|
107
|
-
A pack over budget MUST carry a **budget-exemption ADR** under `docs/adr/`
|
|
108
|
-
(or legacy `docs/decisions/`) that records:
|
|
109
|
-
|
|
110
|
-
1. **The user need** — the concrete workflow each over-budget visible command
|
|
111
|
-
serves, and why a user must reach it by name (not behind a `tier: 2`
|
|
112
|
-
internal surface or inside a sibling cluster).
|
|
113
|
-
2. **The alternatives considered and rejected** — for each command over the
|
|
114
|
-
cap: why not **merge** into an existing cluster, why not **relocate** to a
|
|
115
|
-
pack with headroom, why not **internalize** (`tier: 2`). "All three were
|
|
116
|
-
considered and rejected because …" is mandatory; an exemption that does not
|
|
117
|
-
show its work is rejected at review.
|
|
118
|
-
3. **Re-justification cadence** — the exemption is **re-justified at the next
|
|
119
|
-
major release**. An ADR that is not re-affirmed lapses; the lint then fails
|
|
120
|
-
the over-budget pack until commands are cut or the ADR is renewed.
|
|
121
|
-
|
|
122
|
-
The `--check-new` gate (Phase 1) does not parse ADRs — it is forward-looking
|
|
123
|
-
and fails any *newly visible* command that breaches the cap. The exemption ADR
|
|
124
|
-
is the human record that authorises a maintainer to grandfather a pre-existing
|
|
125
|
-
over-budget pack; the gate stays green for it only because no *new* visible
|
|
126
|
-
command is added.
|
|
127
|
-
|
|
128
|
-
### Gaming-detection — pack-split dodge
|
|
129
|
-
|
|
130
|
-
The cheapest way to dodge a per-pack cap is to split a pack in two so each half
|
|
131
|
-
stays under budget. To catch this at the meta level: **more than 3 new
|
|
132
|
-
capability packs created in any rolling 6-month window without a user-facing
|
|
133
|
-
launch (a profile, a wizard surface, or a documented consumer use case) triggers
|
|
134
|
-
a governance review.** A burst of pack creation with no corresponding surfacing
|
|
135
|
-
is the signal that the cap is being routed around rather than respected. The
|
|
136
|
-
review asks the same exemption questions above, one level up: does each new pack
|
|
137
|
-
serve a distinct user need, or is it a budget-laundering split?
|
|
138
|
-
|
|
139
|
-
## Always-on packs
|
|
140
|
-
|
|
141
|
-
A pack flagged `always_on: true` is a **default pack**: the resolver includes
|
|
142
|
-
its artefacts in every projection unconditionally — it is never gated by the
|
|
143
|
-
selected profile, workspace, or pack set, and it cannot be deselected. This is
|
|
144
|
-
the mechanism for package-maintenance tooling that must be present wherever
|
|
145
|
-
agent-config is installed.
|
|
146
|
-
|
|
147
|
-
**Day-one always-on pack:** `meta`. Every install ships the agent-config layer
|
|
148
|
-
(`.augment/`, `.claude/`, …), so the commands that maintain that layer
|
|
149
|
-
(`condense`, `agents:audit`, `optimize:skills`, …) are relevant in every
|
|
150
|
-
project regardless of the consumer's domain. The 6.0.0-B Phase 3 resolver
|
|
151
|
-
seeds the active set with all `always_on` packs before expanding the selected
|
|
152
|
-
profile's `requires` closure.
|
|
153
|
-
|
|
154
|
-
`always_on` is independent of `size_class` (an always-on pack still has a
|
|
155
|
-
visible-command budget) and of `requires` (always-on packs are seeded, not
|
|
156
|
-
reached through a dependency edge).
|
|
157
|
-
|
|
158
|
-
## Pack-dependency graph
|
|
159
|
-
|
|
160
|
-
`requires` and `suggests` form a directed graph the pack loader
|
|
161
|
-
(`scripts/config/packs.py`, 6.0.0-B Phase 3) expands when resolving the active
|
|
162
|
-
artefact set: selecting `laravel` pulls in `php` and `engineering-base` via the
|
|
163
|
-
transitive `requires` closure, so a Laravel install never lands without its
|
|
164
|
-
PHP / testing base (closes the council / part1.5 § 6 "install Laravel but the
|
|
165
|
-
base is missing" gap).
|
|
166
|
-
|
|
167
|
-
**Graph invariants** (enforced by the Phase 0 Step 0.3 graph lint):
|
|
168
|
-
|
|
169
|
-
1. Every `requires` / `suggests` target resolves to a declared capability pack
|
|
170
|
-
— no dangling edge.
|
|
171
|
-
2. The `requires` graph is **acyclic** (`suggests` may form cycles; it is
|
|
172
|
-
advisory and never expanded transitively).
|
|
173
|
-
3. `requires` is transitive (resolver expands the full closure); `suggests` is
|
|
174
|
-
non-transitive (one hop, surfaced not installed).
|
|
175
|
-
|
|
176
|
-
## Determinism
|
|
177
|
-
|
|
178
|
-
The capability-pack registry is release-time data, not runtime state. Two
|
|
179
|
-
checks keep it honest (Phase 0 Step 0.2):
|
|
180
|
-
|
|
181
|
-
- **No orphan tag** — every `packs:` value used by any artefact has a manifest
|
|
182
|
-
entry.
|
|
183
|
-
- **No orphan manifest** — every manifest entry is referenced by at least one
|
|
184
|
-
artefact (a pack with zero artefacts is dead vocabulary; remove it or cite
|
|
185
|
-
the artefact).
|
|
186
|
-
|
|
187
|
-
Both reproduce from the discovery manifest
|
|
188
|
-
(`scripts/build_discovery_manifest.py` → `dist/discovery/`) with no manual
|
|
189
|
-
list.
|
|
190
|
-
|
|
191
|
-
## In-use packs (2026-06-02)
|
|
192
|
-
|
|
193
|
-
19 capability packs carry at least one artefact today, enumerated from the
|
|
194
|
-
built discovery manifest (not guessed):
|
|
195
|
-
|
|
196
|
-
`engineering-base`, `meta`, `laravel`, `php`, `react`, `symfony`, `nextjs`,
|
|
197
|
-
`typescript`, `python`, `ai-video`, `ops-people`, `gtm-marketing`,
|
|
198
|
-
`gtm-sales`, `founder-strategy`, `product-basic`, `product-discovery`,
|
|
199
|
-
`finance-basic`, `finance-advanced`, `fun`.
|
|
200
|
-
|
|
201
|
-
Vocabulary ids with **zero** referencing artefacts today (`javascript`,
|
|
202
|
-
`small-business`, `construction`) are not assigned a `size_class` until an
|
|
203
|
-
artefact adopts them — an orphan manifest fails the determinism check.
|
|
204
|
-
|
|
205
|
-
## See also
|
|
206
|
-
|
|
207
|
-
- [`workflow-packs`](workflow-packs.md) — the bundle layer; do not conflate.
|
|
208
|
-
- [`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md) — the
|
|
209
|
-
`packs:` vocabulary this contract formalizes; amendments require an ADR-013
|
|
210
|
-
amendment in the same PR.
|
|
211
|
-
- [`discovery-manifest`](discovery-manifest.md) — the release-time scan that
|
|
212
|
-
feeds the determinism checks.
|
|
213
|
-
- [`command-surface-tiers`](command-surface-tiers.md) — the orthogonal
|
|
214
|
-
visibility axis (tier 0/1/2); `size_class` budgets count `visible` +
|
|
215
|
-
`advanced`, tiers gate `--help` surfacing.
|
|
216
|
-
- [`road-to-6.0.0-b-pack-scoped-projection.md`](../../agents/roadmaps/road-to-6.0.0-b-pack-scoped-projection.md)
|
|
217
|
-
Phase 0 — the steps that derive and lint the manifests defined here.
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-09-04
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# CI Cost Budget
|
|
7
|
-
|
|
8
|
-
> **Status:** active · **Owner:** maintainer · **Opened:** 2026-05-26 ·
|
|
9
|
-
> **Review cadence:** quarterly (next: 2026-08-26)
|
|
10
|
-
>
|
|
11
|
-
> Measured durations + trigger surfaces for every PR-blocking CI job in
|
|
12
|
-
> `.github/workflows/`. Sets a per-job wall-clock budget (5 min average)
|
|
13
|
-
> beyond which the job either earns its cost in writing or gets a
|
|
14
|
-
> follow-up optimisation step. Companion to
|
|
15
|
-
> [`release-pr-gating.md`](release-pr-gating.md) and
|
|
16
|
-
> [`branch-protection-policy.md`](branch-protection-policy.md).
|
|
17
|
-
|
|
18
|
-
## Baseline (pre-optimisation, 2026-05-26)
|
|
19
|
-
|
|
20
|
-
Captured via `gh run list --branch main --limit 50 --json
|
|
21
|
-
name,createdAt,updatedAt`. Wall-clock figures are the average of the most
|
|
22
|
-
recent 50 main-branch runs.
|
|
23
|
-
|
|
24
|
-
| Workflow | Job | OS × variant | Avg duration | Trigger surface |
|
|
25
|
-
|---|---|---|--:|---|
|
|
26
|
-
| `tests.yml` | `install-tests` | 4 shards × 2 OS | 218 s | `scripts/**`, `tests/**`, `src/**`, manifest pins |
|
|
27
|
-
| `tests.yml` | `install-aux-tests` | 2 OS | 90 s | same as above |
|
|
28
|
-
| `tests.yml` | `python-tests` | 4 versions × ubuntu + 3.12 × macOS | ~210 s | same as above |
|
|
29
|
-
| `tests.yml` | `node-tests` | 2 OS | 180 s | same as above |
|
|
30
|
-
| `tests.yml` | `windows-lockfile-export` | windows-latest | 60–90 s | same as above (over-broad — see Phase C Step 1) |
|
|
31
|
-
| `smoke-public-install.yml` | `smoke` | 3 OS × 2 Node | 413 s | install paths + setup.sh + templates |
|
|
32
|
-
| `consistency.yml` | (single) | ubuntu | 27 s | always-on (PR / push) |
|
|
33
|
-
| `smoke.yml` | smoke-contracts | ubuntu | 18 s | `scripts/schemas/**` |
|
|
34
|
-
| `migration-dry-run.yml` | (single) | ubuntu | 20 s | migration-touching paths |
|
|
35
|
-
| `skill-lint.yml` | (single) | ubuntu | 64 s | `dist/agent-src*/**`, schemas |
|
|
36
|
-
| `release-guard.yml` | (single) | ubuntu | < 10 s | tag-trigger only |
|
|
37
|
-
|
|
38
|
-
**Critical path observations:**
|
|
39
|
-
|
|
40
|
-
- `smoke-public-install.yml` and `tests.yml` dominate non-release-PR
|
|
41
|
-
wall-clock. Both trigger on `package.json` — a release PR (which only
|
|
42
|
-
touches `package.json` + CHANGELOG + marketplace + pack manifests)
|
|
43
|
-
pulled the full matrix on every bump pre-Phase A.
|
|
44
|
-
- `tests.yml` `python-tests` ran four Python versions on Linux + 3.12 on
|
|
45
|
-
macOS on every PR touching `scripts/**`. The 3.10 / 3.11 / 3.13 legs
|
|
46
|
-
are extras: they prove the supported range but rarely surface a
|
|
47
|
-
Python-version-only regression. Moved to a path-filtered sibling
|
|
48
|
-
workflow in Phase C Step 2.
|
|
49
|
-
- `tests.yml` `windows-lockfile-export` fired on every PR touching
|
|
50
|
-
`scripts/**` even when the PR never went near `install_global` /
|
|
51
|
-
`cmd_export`. Moved to its own path-filtered workflow in Phase C
|
|
52
|
-
Step 1.
|
|
53
|
-
|
|
54
|
-
## Expected savings (post-optimisation)
|
|
55
|
-
|
|
56
|
-
The Phase A guards on `tests.yml` + `smoke-public-install.yml` cut
|
|
57
|
-
release-PR critical-path from `218 s + 413 s` (serial worst case ≈ 11
|
|
58
|
-
min) to `~30 s` (`Consistency` + `Smoke Contracts` + new `Release
|
|
59
|
-
Validation`). Phase C cuts feature-PR critical-path by removing the
|
|
60
|
-
Windows leg (60–90 s) and the 3-version Python sweep from PRs that
|
|
61
|
-
don't touch Python paths.
|
|
62
|
-
|
|
63
|
-
| Scenario | Pre | Post | Reduction |
|
|
64
|
-
|---|--:|--:|--:|
|
|
65
|
-
| Release PR (release/X.Y.Z) | ~660 s | ~60 s | –91 % |
|
|
66
|
-
| Feature PR touching scripts/** but no install_global / cmd_export | ~700 s | ~600 s | –14 % |
|
|
67
|
-
| Feature PR touching only docs/** | ~30 s (consistency) | ~30 s | unchanged |
|
|
68
|
-
| Feature PR touching Python paths only on 3.12 | ~700 s | ~700 s | unchanged (baseline still runs) |
|
|
69
|
-
|
|
70
|
-
## Per-job cost ceiling — 5-min average
|
|
71
|
-
|
|
72
|
-
Any job averaging **> 5 min wall-clock** across the most-recent 50
|
|
73
|
-
main-branch runs requires one of:
|
|
74
|
-
|
|
75
|
-
1. A documented justification in this file ("This job protects
|
|
76
|
-
property X; shrinking it would mean losing the regression Y").
|
|
77
|
-
2. A follow-up optimisation step opened in the next quarterly review.
|
|
78
|
-
3. An ADR superseding the ceiling for this specific job (e.g. integration
|
|
79
|
-
smoke that proves a real consumer-visible promise).
|
|
80
|
-
|
|
81
|
-
Current jobs above the ceiling: `smoke-public-install.yml` (413 s) —
|
|
82
|
-
ceiling violation is acknowledged. The Phase A skip on release PRs
|
|
83
|
-
mitigates it; an ADR will follow if it re-exceeds 5 min on feature PRs
|
|
84
|
-
post-Phase C.
|
|
85
|
-
|
|
86
|
-
## Quarterly review checklist
|
|
87
|
-
|
|
88
|
-
Run the first Monday of every quarter:
|
|
89
|
-
|
|
90
|
-
1. Re-capture the baseline table via `gh run list --branch main --limit
|
|
91
|
-
50 --json name,createdAt,updatedAt` + arithmetic.
|
|
92
|
-
2. Compare each row against the previous quarter; flag any > 25 %
|
|
93
|
-
regression.
|
|
94
|
-
3. For every row over the 5-min ceiling, file a follow-up step in the
|
|
95
|
-
open CI-roadmap (or in this file's history if no roadmap is
|
|
96
|
-
currently active).
|
|
97
|
-
4. Update the "Expected savings" table once optimisations land so the
|
|
98
|
-
delta is provable, not asserted.
|
|
99
|
-
5. Audit the path-filter surfaces — when a workflow keeps firing on
|
|
100
|
-
PRs that don't touch its real scope, tighten the filter.
|
|
101
|
-
|
|
102
|
-
## See also
|
|
103
|
-
|
|
104
|
-
- [`release-pr-gating.md`](release-pr-gating.md) — release-PR shape
|
|
105
|
-
predicates, cut surface, kept surface.
|
|
106
|
-
- [`branch-protection-policy.md`](branch-protection-policy.md) — required
|
|
107
|
-
status check floor per PR shape.
|
|
108
|
-
- `.github/workflows/python-version-sweep.yml` — extras Python versions
|
|
109
|
-
(3.10 · 3.11 · 3.13) on Python-path PRs.
|
|
110
|
-
- `.github/workflows/windows-lockfile-export.yml` — Windows leg gated by
|
|
111
|
-
`install_global` / `cmd_export` paths.
|