@event4u/agent-config 9.7.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 +314 -190
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +57 -11
- 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/commit/in-chunks.md +8 -0
- package/dist/agent-src/commands/commit.md +17 -0
- 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/pr/create.md +4 -0
- 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/contexts/override-system.md +75 -5
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/context-hygiene.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/language-and-tone.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +4 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/preservation-guard.md +3 -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 +9 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/telegraph-speak.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
- package/dist/agent-src/rules/tool-safety.md +4 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/verify-before-complete.md +2 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
- 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/gated-reach/SKILL.md +185 -0
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
- 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-analyser/SKILL.md +14 -12
- package/dist/agent-src/skills/image-editing/SKILL.md +2 -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/readme-writing/SKILL.md +6 -1
- 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/screenshot-hygiene/SKILL.md +171 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
- 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/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
- 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 +4 -0
- 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/github-workflows/secret-scan.yml +65 -0
- 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/configRoot.js +112 -0
- package/dist/cli/configRoot.js.map +1 -0
- package/dist/cli/configRoot.test.js +97 -0
- package/dist/cli/configRoot.test.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +54 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +8 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +502 -101
- 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 +95 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +36 -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 +791 -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 +12 -0
- 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 +32 -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 +12 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/server/serverInfo.js +6 -2
- package/dist/server/serverInfo.js.map +1 -1
- package/dist/server/token.js +11 -4
- package/dist/server/token.js.map +1 -1
- package/dist/server/writeRoot.js +15 -1
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/capabilities.js +33 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/capabilities.test.js +39 -0
- package/dist/shared/capabilities.test.js.map +1 -0
- 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 +15 -6
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +22 -9
- 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 +94 -13
- 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/config/reach-channels.yml +217 -0
- package/src/config/reach-prescriptions-intake.yml +200 -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 +96 -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/exec_evidence.ts +251 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/kernel_rules.ts +46 -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/reddit_thread_parse.ts +598 -0
- package/src/scripts/_lib/risk_paths.ts +160 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +108 -0
- package/src/scripts/_lib/secret_detector.ts +328 -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/tool_probe.ts +359 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/adr/regenerate_index.ts +81 -6
- 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_adr_coverage.ts +33 -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 +207 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_adr_frontmatter.ts +195 -0
- package/src/scripts/check_artefact_count_messaging.ts +4 -0
- package/src/scripts/check_backstop_debt.ts +210 -0
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_claims.ts +188 -8
- package/src/scripts/check_comparison.ts +12 -0
- package/src/scripts/check_enforcement_coverage.ts +592 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_kernel_rule_bundle.ts +16 -12
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_reach_channels.ts +407 -0
- package/src/scripts/check_reach_staleness.ts +364 -0
- package/src/scripts/check_secret_leak.test.ts +47 -0
- package/src/scripts/check_secret_leak.ts +290 -0
- 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 +379 -0
- package/src/scripts/code_graph/detect.ts +186 -0
- package/src/scripts/code_graph/extract.ts +386 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/loader.ts +123 -0
- package/src/scripts/code_graph/query.ts +290 -0
- package/src/scripts/code_graph/sanitize.ts +30 -0
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/code_graph/types.ts +83 -0
- package/src/scripts/code_graph/validate.ts +63 -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 +8 -4
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_subagent_floor.ts +194 -0
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +65 -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 +191 -0
- 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/iron_law_sha.ts +3 -12
- 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 +267 -0
- 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/measure_rule_budget.ts +3 -12
- 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/reach_doctor.ts +1651 -0
- package/src/scripts/release.ts +24 -3
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/risk_escalation_shadow.ts +160 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/reach-channels.schema.json +134 -0
- package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
- package/src/scripts/schemas/rule.schema.json +20 -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/skill_linter.ts +55 -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/validate_reach_prescriptions.ts +751 -0
- 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 +24 -2
- package/src/shared/capabilities.test.ts +43 -0
- package/src/shared/capabilities.ts +75 -0
- package/src/templates/minimal/agents-overrides-readme.md +20 -0
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-BiEZiZ31.js +0 -40
- package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
- package/docs/CLAIMS.md +0 -261
- 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 -648
- 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 -721
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -45
- 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/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 -59
- 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 -685
- 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 -189
- 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 -246
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
- 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 -201
- 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-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 -136
- 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 -117
- 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 -44
- 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/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 -176
- 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 -29
- 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
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 066
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-08
|
|
5
|
-
decision: skill-body-prerendering
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: employee-product Phase 8 (road-to-employee-product-and-external-proof)
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-066 — Skill-body pre-rendering for host hand-off (v0)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-08. Design converged via AI-council (claude-sonnet-4-5 +
|
|
17
|
-
gpt-4o, design mode, 2026-06-08). Resolves the skill-body pre-rendering ADR-065
|
|
18
|
-
(and ADR-024) deferred.
|
|
19
|
-
|
|
20
|
-
## Context
|
|
21
|
-
|
|
22
|
-
A role prompt carries one `skill_hint` (e.g. `doc-coauthoring`). Hosts without
|
|
23
|
-
skill resolution — Codex / Gemini (Tier-1, no skill surface per ADR-024) and
|
|
24
|
-
every Tier-3 host — cannot follow that reference, so the workspace must
|
|
25
|
-
**pre-render the skill body** into the hand-off prompt. Skills live at
|
|
26
|
-
`<skills-root>/<id>/SKILL.md` (YAML frontmatter + body); roots are
|
|
27
|
-
`.agent-src.uncondensed/skills/` then `dist/agent-src/skills/` (only the latter
|
|
28
|
-
exists in a consumer checkout). `skill_hint` is **package-controlled** (it comes
|
|
29
|
-
from a shipped role prompt, not user input).
|
|
30
|
-
|
|
31
|
-
## Decision
|
|
32
|
-
|
|
33
|
-
### K1 — include the body **+ a one-line header** (option c)
|
|
34
|
-
|
|
35
|
-
`workspace_skills.resolve_section(skill_hint)` returns a
|
|
36
|
-
`## Skill context: <name>` section: the skill `name`, its one-line
|
|
37
|
-
`description` (both from frontmatter), then the procedure **body** (frontmatter
|
|
38
|
-
stripped). Body-only loses the skill's identity; the whole SKILL.md leaks
|
|
39
|
-
metadata noise into the host prompt.
|
|
40
|
-
|
|
41
|
-
### K2 — a dedicated resolver module
|
|
42
|
-
|
|
43
|
-
`workspace_skills.py` owns skill → prompt-section rendering; the inbox store
|
|
44
|
-
imports it and appends the section when `--skill-hint` is passed. The skill
|
|
45
|
-
domain owns its own rendering syntax. *(Debt: the section markup lives in the
|
|
46
|
-
skill module rather than a pure-data resolver + caller-side formatter. Accepted
|
|
47
|
-
for v0; revisit if a second consumer needs a different format.)*
|
|
48
|
-
|
|
49
|
-
### K3 — trust + bounds
|
|
50
|
-
|
|
51
|
-
`skill_hint` is package-controlled but hardened anyway: charset-validate
|
|
52
|
-
`^[a-z0-9][a-z0-9-]*$` (rejects path traversal), resolve **strictly under** a
|
|
53
|
-
skills root (a `relative_to` guard backs the charset check), and the
|
|
54
|
-
**existence-under-root** check is the de-facto allowlist (only real skill dirs
|
|
55
|
-
resolve). A missing / invalid / unreadable skill **degrades to a one-line inline
|
|
56
|
-
note** ("skill `<id>` not found — proceed without it"), never a crash. The body
|
|
57
|
-
is **size-capped** at 64 KB (≫ the 912-line max). **No transitive resolution** —
|
|
58
|
-
a skill body is included verbatim, it never pulls other skills → no cycles.
|
|
59
|
-
*(Debt: a generated skill-id manifest allowlist is deferred to v1; the
|
|
60
|
-
existence check covers v0.)*
|
|
61
|
-
|
|
62
|
-
### K4 — scope
|
|
63
|
-
|
|
64
|
-
v0 wires pre-rendering into the **Tier-3 inbox hand-off only** (the surface
|
|
65
|
-
shipped in ADR-065): `workspace_inbox.py write --skill-hint <id>` +
|
|
66
|
-
`POST /api/v1/workspace/inbox {skill_hint}`. Codex/Gemini Tier-1 pre-rendering
|
|
67
|
-
rides the host-agent launch loop, which is unbuilt → out of scope. Ships dark
|
|
68
|
-
behind the existing `AGENT_CONFIG_TIER3_INBOX` flag (no new flag).
|
|
69
|
-
|
|
70
|
-
## Consequences
|
|
71
|
-
|
|
72
|
-
- A Tier-3 hand-off now carries the skill context inline; a host with no skill
|
|
73
|
-
resolution can act on it.
|
|
74
|
-
- Plaintext (the inbox is plaintext per ADR-065); no cryptography dependency.
|
|
75
|
-
- Deferred to v1 (recorded debt): manifest-based skill-id allowlist, a
|
|
76
|
-
`--dry-run` resolve mode, and success / kill-switch metrics
|
|
77
|
-
(e.g. missing-skill rate). The feature ships dark, so these are not v0
|
|
78
|
-
blockers.
|
|
79
|
-
|
|
80
|
-
## Alternatives
|
|
81
|
-
|
|
82
|
-
- **Body-only / whole-SKILL.md** (K1 a/b) — rejected: identity loss vs metadata
|
|
83
|
-
noise.
|
|
84
|
-
- **Resolver returns pure data, Node formats** (K2) — cleaner layering, deferred
|
|
85
|
-
as over-scoped for a single v0 consumer.
|
|
86
|
-
- **Manifest allowlist in v0** (K3) — deferred; existence-under-root suffices
|
|
87
|
-
for package-controlled ids.
|
|
88
|
-
|
|
89
|
-
## References
|
|
90
|
-
|
|
91
|
-
- ADR-065 — Tier-3 inbox (the hand-off surface this renders into).
|
|
92
|
-
- ADR-024 — notes Codex/Gemini lack skill resolution.
|
|
93
|
-
- `src/cli/python/workspace_skills.py`, `workspace_inbox.py`, `src/server/routes/workspace.ts`.
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 067
|
|
3
|
-
status: proposed
|
|
4
|
-
date: 2026-06-08
|
|
5
|
-
decision: glama-registry-listing
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: road-to-glama-registry-listing (Phases 1–3)
|
|
9
|
-
type: lightweight
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-067 — Glama MCP registry listing
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Proposed** · 2026-06-08. Implements
|
|
17
|
-
[`road-to-glama-registry-listing.md`](../../agents/roadmaps/archive/road-to-glama-registry-listing.md).
|
|
18
|
-
Council convergence: claude-sonnet-4-5 + gpt-4o, design mode, 2 rounds +
|
|
19
|
-
peer-review, 2026-06-08 — one of four candidate Glama moves survives the
|
|
20
|
-
"no-bullshit" bar (registry listing only; Gateway, Inspector in CI, and Worker
|
|
21
|
-
listing all dropped with reasons in the roadmap).
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
[Glama](https://glama.ai) indexes ~32k open-source MCP servers, provides a free
|
|
26
|
-
registry listing, and surfaces them in tool-level search across Claude Code,
|
|
27
|
-
Cursor, VS Code, and similar clients. The `agent-config` local stdio MCP server
|
|
28
|
-
(`scripts/mcp_server/`, Python, `mcp_scope: full`) is not currently listed
|
|
29
|
-
anywhere outside the package README. The listing is a one-way-door free
|
|
30
|
-
experiment: costs nothing, creates no technical lock-in, and the only ongoing
|
|
31
|
-
maintenance surface is a removable README badge.
|
|
32
|
-
|
|
33
|
-
The listing targets **agent developers and contributors**, not end-users
|
|
34
|
-
configuring pre-built agents. The stdio server requires a local checkout; there
|
|
35
|
-
is no turnkey `npx`/`pip` install path (that is a separate roadmap:
|
|
36
|
-
`road-to-mcp-stdio-end-user-packaging.md`, held at `status: draft` until a real
|
|
37
|
-
demand signal fires). Listing the server for end-users without packaging would
|
|
38
|
-
create friction and false support expectations — the audience scope below must be
|
|
39
|
-
reflected verbatim in the Glama listing description.
|
|
40
|
-
|
|
41
|
-
The experimental Cloudflare Worker (`internal/workers/mcp/`, `mcp_scope: lite`,
|
|
42
|
-
not README-linked) is **never listed** here or anywhere else until it exits
|
|
43
|
-
`experimental`. Listing it would create an incoherent support promise.
|
|
44
|
-
|
|
45
|
-
## Decision
|
|
46
|
-
|
|
47
|
-
List the local stdio MCP server in the Glama registry. Developer-first scope.
|
|
48
|
-
This ADR documents the exact submission content, discovery channels, kill-switch
|
|
49
|
-
criteria, and review trigger so the whole process is reproducible and auditable
|
|
50
|
-
without re-litigating the council decision.
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Submission — exact steps (manual, one-time)
|
|
55
|
-
|
|
56
|
-
1. Open: <https://glama.ai/mcp/servers/new> (or the "Add server" button on
|
|
57
|
-
<https://glama.ai/mcp/servers>).
|
|
58
|
-
2. **Repository URL:** `https://github.com/event4u-app/agent-config`
|
|
59
|
-
3. Paste the **listing description** from `## Listing description` below.
|
|
60
|
-
4. **Tags / categories:** `governance`, `agent-tools`, `rules`, `skills`,
|
|
61
|
-
`prompts`, `resources`, `claude-code`, `cursor`, `windsurf`
|
|
62
|
-
5. Submit.
|
|
63
|
-
6. Record the resulting listing URL in this ADR (`## Listing URL` section below)
|
|
64
|
-
and add the README badge per `## README badge` below.
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Listing description
|
|
69
|
-
|
|
70
|
-
> **agent-config — MCP governance server for AI coding agents**
|
|
71
|
-
>
|
|
72
|
-
> Exposes the package's read-only governance surface (skills, commands, rules,
|
|
73
|
-
> guidelines) as MCP `prompts` and `resources`. Intended for **agent developers
|
|
74
|
-
> and contributors** who want to load the governance content into Claude Code,
|
|
75
|
-
> Cursor, Zed, or Continue without manual copy-paste.
|
|
76
|
-
>
|
|
77
|
-
> **Not a turnkey package** — requires a local checkout (`git clone` +
|
|
78
|
-
> `task mcp:setup`). End-user turnkey packaging is a separate, future roadmap.
|
|
79
|
-
>
|
|
80
|
-
> **What it serves:** `prompts/list` + `prompts/get` (every skill, command, rule,
|
|
81
|
-
> guideline as a named prompt) and `resources/list` + `resources/read` (same
|
|
82
|
-
> content as addressable resources). Read-only; never executes code, never writes
|
|
83
|
-
> files, never spawns shells.
|
|
84
|
-
>
|
|
85
|
-
> **Quick start (developers):**
|
|
86
|
-
> ```bash
|
|
87
|
-
> git clone https://github.com/event4u-app/agent-config
|
|
88
|
-
> cd agent-config
|
|
89
|
-
> task mcp:setup # creates .venv-mcp/, installs MCP SDK
|
|
90
|
-
> task mcp:run # starts the server on stdio
|
|
91
|
-
> ```
|
|
92
|
-
>
|
|
93
|
-
> Source: `src/scripts/mcp_server/` · Contract:
|
|
94
|
-
> `docs/contracts/mcp-phase-1-scope.md` · Experimental hosted Worker (separate,
|
|
95
|
-
> opt-in): `docs/setup/mcp-cloud-setup.md`
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Listing URL
|
|
100
|
-
|
|
101
|
-
Live — Glama **auto-indexed** the GitHub repo (no manual form submission was
|
|
102
|
-
needed):
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
https://glama.ai/mcp/servers/event4u-app/agent-config
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Listing state as of 2026-06-08: License **MIT (permissive)**, Quality **not
|
|
109
|
-
tested**, Maintenance **C-grade**, and a **"This server cannot be installed"**
|
|
110
|
-
notice. The "cannot be installed" flag is expected and consistent with the
|
|
111
|
-
developer-first scope — the stdio server is not a turnkey `npx`/`pip` package;
|
|
112
|
-
it requires a local checkout + `task mcp:setup`. Resolving that flag is the job
|
|
113
|
-
of the follow-up roadmap (`road-to-mcp-stdio-end-user-packaging.md`), not this
|
|
114
|
-
one.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## README badge
|
|
119
|
-
|
|
120
|
-
Glama does **not** expose an embeddable badge snippet for this listing, so a
|
|
121
|
-
plain link is used instead of a badge image (avoids a broken-image surface). One
|
|
122
|
-
discreet line was added to `README.md` in the MCP section (after the Worker
|
|
123
|
-
"Scope — Lite, not Full" note):
|
|
124
|
-
|
|
125
|
-
```markdown
|
|
126
|
-
> The built-in **local stdio** server is listed for discovery in the
|
|
127
|
-
> [Glama MCP Registry](https://glama.ai/mcp/servers/event4u-app/agent-config)
|
|
128
|
-
> (agent developers / contributors; requires a local checkout, not a turnkey
|
|
129
|
-
> install — see [ADR-067](docs/decisions/ADR-067-glama-registry-listing.md)).
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
This link is the **sole reputational signal** from the listing and is removable
|
|
133
|
-
in a single commit. Removing it is the Phase-3 kill-switch for spam-farm
|
|
134
|
-
scenarios; see `## Kill-switches` below.
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Discovery channels (cross-listing)
|
|
139
|
-
|
|
140
|
-
The listing must not depend on Glama alone (network-effect lock-in risk per
|
|
141
|
-
council). Two channels are active as of 2026-06-08:
|
|
142
|
-
|
|
143
|
-
| Channel | State | How |
|
|
144
|
-
|---|---|---|
|
|
145
|
-
| Glama MCP Registry | **pending** (manual form) | This ADR |
|
|
146
|
-
| GitHub topics | **active** | `model-context-protocol` added via `gh api` (see below) |
|
|
147
|
-
| Awesome MCP list (`punkpeye/awesome-mcp-servers`) | **optional next step** | Open a PR; content below |
|
|
148
|
-
|
|
149
|
-
### GitHub topics (done)
|
|
150
|
-
|
|
151
|
-
`model-context-protocol` added to `event4u-app/agent-config` topics, alongside
|
|
152
|
-
the existing `mcp` topic. Both surface the repo in
|
|
153
|
-
`github.com/topics/model-context-protocol` and `github.com/topics/mcp` searches.
|
|
154
|
-
|
|
155
|
-
Command run:
|
|
156
|
-
```bash
|
|
157
|
-
gh api -X PUT /repos/event4u-app/agent-config/topics \
|
|
158
|
-
--field 'names[]=claude-code' \
|
|
159
|
-
--field 'names[]=ai-agent' \
|
|
160
|
-
--field 'names[]=mcp' \
|
|
161
|
-
--field 'names[]=model-context-protocol' \
|
|
162
|
-
--field 'names[]=mcp-server' \
|
|
163
|
-
--field 'names[]=agent-governance' \
|
|
164
|
-
--field 'names[]=ai-video' \
|
|
165
|
-
--field 'names[]=cursor' \
|
|
166
|
-
--field 'names[]=llm' \
|
|
167
|
-
--field 'names[]=prompt-engineering' \
|
|
168
|
-
--field 'names[]=skills' \
|
|
169
|
-
--field 'names[]=windsurf'
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Awesome MCP list (optional future step)
|
|
173
|
-
|
|
174
|
-
If Glama alone proves insufficient or to reach the GitHub-native audience, open
|
|
175
|
-
a PR against `punkpeye/awesome-mcp-servers`:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
gh repo fork punkpeye/awesome-mcp-servers --clone
|
|
179
|
-
# Add to the appropriate section:
|
|
180
|
-
# - [agent-config](https://github.com/event4u-app/agent-config) —
|
|
181
|
-
# MCP governance server for AI coding agents (skills, rules, commands,
|
|
182
|
-
# guidelines as prompts/resources). Developer-first; requires local checkout.
|
|
183
|
-
gh pr create --repo punkpeye/awesome-mcp-servers \
|
|
184
|
-
--title "Add agent-config MCP governance server" \
|
|
185
|
-
--body "..."
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
**Kill-switch:** if Glama listing alone drives sufficient discovery (≥1 inbound
|
|
189
|
-
issue referencing it within 12 months), skip this PR — it adds maintenance
|
|
190
|
-
surface without additive benefit.
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Kill-switches
|
|
195
|
-
|
|
196
|
-
Conditions under which to **remove the README badge** (the listing itself can
|
|
197
|
-
harmlessly stay up — removing the badge severs the only active reputational
|
|
198
|
-
signal):
|
|
199
|
-
|
|
200
|
-
| Trigger | Action |
|
|
201
|
-
|---|---|
|
|
202
|
-
| (a) Glama makes listing **conditional on using their Gateway hosting** | Remove badge immediately; delist if possible. Rationale: migration to Glama hosting breaks the A0-cloud contract (version-pinned URLs, prebaked skillSetSignature, bearer-token control). Non-negotiable. |
|
|
203
|
-
| (b) Registry degrades into a spam farm (>50 % low-quality entries dominate MCP search results) | Remove the badge; let the listing rot harmlessly (no maintenance cost). |
|
|
204
|
-
| (c) Per-release listing maintenance exceeds ~5 min/release | Investigate whether Glama auto-syncs from GitHub releases (preferred); if not, evaluate removing the listing. |
|
|
205
|
-
|
|
206
|
-
A listing **fee** is **not** an automatic remove trigger — evaluate the amount.
|
|
207
|
-
A $5–10/month fee buys real distribution; an unreasonable fee does not.
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## Review trigger (trigger-based, never calendar-based)
|
|
212
|
-
|
|
213
|
-
**Do not set a 60/90-day calendar review.** This is OSS infrastructure, not a
|
|
214
|
-
SaaS product; 60-day windows measure random noise.
|
|
215
|
-
|
|
216
|
-
**Trigger:** the first GitHub issue, PR, or star note that references Glama.
|
|
217
|
-
On that signal, assess:
|
|
218
|
-
1. Did the user have a good experience? Could they actually run the server?
|
|
219
|
-
2. If friction: fix docs or sharpen "developers only" in the listing description.
|
|
220
|
-
3. If confusion about end-user use: link to the end-user packaging roadmap
|
|
221
|
-
(`road-to-mcp-stdio-end-user-packaging.md`) from the listing.
|
|
222
|
-
|
|
223
|
-
**Timeout kill-switch:** if no inbound reference to Glama appears within
|
|
224
|
-
12 months of the listing going live, treat the listing as low-signal. The
|
|
225
|
-
badge removal cost is one commit.
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Consequences
|
|
230
|
-
|
|
231
|
-
**Positive:**
|
|
232
|
-
- Zero-cost discovery channel for agent developers. The Glama inspector also
|
|
233
|
-
lets potential users explore tools without cloning.
|
|
234
|
-
- GitHub `model-context-protocol` + `mcp-server` topics reach the GitHub-native
|
|
235
|
-
audience independently of Glama.
|
|
236
|
-
|
|
237
|
-
**Negative / risks:**
|
|
238
|
-
- Listing implies a degree of support. Mitigated by the honest "developers only /
|
|
239
|
-
not a turnkey package" scope label in the description.
|
|
240
|
-
- Network-effect lock-in if Glama becomes the de facto standard and adds
|
|
241
|
-
badge-gating for Gateway users. Kill-switch (a) handles this.
|
|
242
|
-
- Registry could attract wrong-audience users (expecting `npx` one-liner).
|
|
243
|
-
Mitigated by explicit description language + link to future packaging roadmap
|
|
244
|
-
once it ships.
|
|
245
|
-
|
|
246
|
-
**Not changed:**
|
|
247
|
-
- No CI dependency added.
|
|
248
|
-
- No hosting changed.
|
|
249
|
-
- The Cloudflare Worker is not listed.
|
|
250
|
-
- The `mcp_scope: full` contract is unchanged.
|
|
251
|
-
- All three dropped options (Inspector in CI, Gateway hosting migration, manual
|
|
252
|
-
Inspector smoke) remain dropped.
|
|
253
|
-
|
|
254
|
-
## See also
|
|
255
|
-
|
|
256
|
-
- [`road-to-glama-registry-listing.md`](../../agents/roadmaps/archive/road-to-glama-registry-listing.md)
|
|
257
|
-
- [`road-to-mcp-stdio-end-user-packaging.md`](../../agents/roadmaps/archive/road-to-mcp-stdio-end-user-packaging.md) — follow-up (completed + archived)
|
|
258
|
-
- [`docs/contracts/mcp-phase-1-scope.md`](../contracts/mcp-phase-1-scope.md) — stdio kernel contract
|
|
259
|
-
- [`docs/contracts/mcp-cloud-scope.md`](../contracts/mcp-cloud-scope.md) — Worker A0-cloud contract
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 068
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-08
|
|
5
|
-
decision: host-tier-detection
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: employee-product Phase 8 (road-to-employee-product-and-external-proof)
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-068 — Host-agent tier detection (v0)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-08. Design converged via AI-council (claude-sonnet-4-5 +
|
|
17
|
-
gpt-4o, design mode, 2026-06-08), with one verdict reversed on review (see H3).
|
|
18
|
-
|
|
19
|
-
## Context
|
|
20
|
-
|
|
21
|
-
The workspace shells out to a host agent per ADR-023; `host-agent-protocol.md`
|
|
22
|
-
is the source-of-truth inventory + tier matrix (Tier 1 = CLI-drivable: Claude
|
|
23
|
-
Code / Codex / Gemini; Tier 3 = observe-only → inbox hand-off: Augment / Cursor
|
|
24
|
-
/ Cline / Windsurf). Nothing detected a host's tier — `launch` took a free-text
|
|
25
|
-
`host` string and recorded a session blindly. The **Tier-1 drive loop**
|
|
26
|
-
(`claude -p …` turn loop) is unbuilt and stays so.
|
|
27
|
-
|
|
28
|
-
## Decision
|
|
29
|
-
|
|
30
|
-
### H1 — code map mirroring the contract + consistency test
|
|
31
|
-
`workspace_hosts.py HOST_INVENTORY = {id: {tier, cli}}` mirrors the contract's
|
|
32
|
-
inventory table. `tests/test_workspace_hosts.py::test_inventory_matches_contract_tiers`
|
|
33
|
-
parses the contract table and asserts every tier agrees — so the human-readable
|
|
34
|
-
contract stays canonical without fragile **runtime** markdown parsing (the
|
|
35
|
-
parsing lives in the test, not the hot path).
|
|
36
|
-
|
|
37
|
-
### H2 — effective tier = inventory tier capped by CLI presence
|
|
38
|
-
`effective_tier = 1 iff (inventory_tier == 1 and shutil.which(cli)) else 3`.
|
|
39
|
-
A Tier-1 host whose CLI is missing demotes to Tier 3 (the contract's fail-closed
|
|
40
|
-
rule). Detection is **deterministic and side-effect-free** — PATH probe only, it
|
|
41
|
-
**never spawns** a host CLI (a test asserts no `subprocess.run`/`Popen`). A
|
|
42
|
-
`--version` probe (vs PATH-only) is v1 debt.
|
|
43
|
-
|
|
44
|
-
### H3 — launch reports the tier; it does NOT drive (council verdict reversed)
|
|
45
|
-
The design first proposed a Tier-1 `{tier:1, mode:'session-recorded'}` branch.
|
|
46
|
-
**Rejected on review** as a phantom state — recording a Tier-1 "launch" that
|
|
47
|
-
cannot execute is dead telemetry with no rollback. Instead `launch` resolves the
|
|
48
|
-
effective tier and **reports** it (`effective_tier`, `cli_present`, `known`,
|
|
49
|
-
`mode`) alongside the recorded session; `mode` is honest —
|
|
50
|
-
`tier1-drive-pending` (drivable, drive unbuilt) or `handoff` (use the inbox).
|
|
51
|
-
|
|
52
|
-
**Scope honesty:** the council assumed `launch` could auto-route Tier-3 to the
|
|
53
|
-
inbox. It cannot in v0 — `launch` has only `role`+`task`, not a *rendered*
|
|
54
|
-
prompt, and the prompt renderer is unbuilt. So `launch` **reports** the tier;
|
|
55
|
-
the actual hand-off stays the explicit `POST /api/v1/workspace/inbox` (which
|
|
56
|
-
takes a caller-rendered prompt + skill pre-render, ADR-065/066). Auto-routing
|
|
57
|
-
`launch → inbox` is deferred to when the prompt renderer lands.
|
|
58
|
-
|
|
59
|
-
### Unknown host — fail-soft in-process, fail-loud at the CLI
|
|
60
|
-
`detect(host_id)` returns `known: false, effective_tier: 3` for an unregistered
|
|
61
|
-
id (so `launch` never 500s on a host string), while the `detect` **CLI exits
|
|
62
|
-
non-zero** on an unknown id (so tooling / tests catch typos). `local` (the
|
|
63
|
-
legacy `launch` default) is unregistered → Tier-3 hand-off, `known: false`.
|
|
64
|
-
|
|
65
|
-
### H4 — single PR
|
|
66
|
-
Detector + `launch` tier-reporting + the contract-consistency test + cross-
|
|
67
|
-
runtime tests, one PR. No dead code (a detector with no caller has no
|
|
68
|
-
integration proof).
|
|
69
|
-
|
|
70
|
-
## Consequences
|
|
71
|
-
|
|
72
|
-
- `launch` now tells the caller whether a host is CLI-drivable or needs the
|
|
73
|
-
hand-off — the seam the UI/caller uses to pick the path.
|
|
74
|
-
- No phantom Tier-1 sessions; no fabricated drive.
|
|
75
|
-
- Plaintext, no cryptography dependency; detection is always-on (harmless —
|
|
76
|
-
read-only PATH probe).
|
|
77
|
-
|
|
78
|
-
### Deferred (v1 debt)
|
|
79
|
-
- `--version` probe instead of PATH-only presence.
|
|
80
|
-
- A generated inventory manifest (vs the hand-maintained map + consistency test).
|
|
81
|
-
- Detection circuit-breaker / error-rate metrics.
|
|
82
|
-
- `launch → inbox` auto-routing (awaits the prompt renderer).
|
|
83
|
-
- The Tier-1 drive loop itself (ADR-023 Tier-1 conversation surface).
|
|
84
|
-
|
|
85
|
-
## References
|
|
86
|
-
|
|
87
|
-
- ADR-023 — host-agent protocol (tier definitions).
|
|
88
|
-
- ADR-065/066 — the Tier-3 inbox hand-off + skill pre-render this reports toward.
|
|
89
|
-
- Contract: [`docs/contracts/host-agent-protocol.md`](../contracts/host-agent-protocol.md).
|
|
90
|
-
- `src/cli/python/workspace_hosts.py`, `src/server/routes/workspace.ts`.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 069
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-08
|
|
5
|
-
decision: prompt-renderer
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: employee-product Phase 8 (road-to-employee-product-and-external-proof)
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-069 — Role-prompt placeholder renderer (v0)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-08. Design converged via AI-council (claude-sonnet-4-5 +
|
|
17
|
-
gpt-4o, design mode, 2026-06-08): both members agreed on decisions 1–4; on
|
|
18
|
-
decision 5 (CLI surface) claude-sonnet-4-5's minimal-surface argument prevailed
|
|
19
|
-
over gpt-4o's "keep `--input k=v`" — see the verdict table below.
|
|
20
|
-
|
|
21
|
-
## Context
|
|
22
|
-
|
|
23
|
-
Role prompts live at `agents/roles/<role>/prompts/<name>.md` with YAML
|
|
24
|
-
frontmatter declaring `inputs` (name / required / shape) and a `skill_hint`,
|
|
25
|
-
plus a body with `{{name}}` placeholders. Nothing filled those placeholders:
|
|
26
|
-
the launch endpoint stored a session header but never produced a usable prompt.
|
|
27
|
-
|
|
28
|
-
The hand-off surfaces both need a *filled* prompt:
|
|
29
|
-
|
|
30
|
-
- **Tier-3 inbox** (ADR-065) writes a rendered prompt for copy-paste, and
|
|
31
|
-
pre-renders a `skill_hint` body (ADR-066).
|
|
32
|
-
- **Tier-1 hosts without a skill surface** (Codex / Gemini, per ADR-068 /
|
|
33
|
-
host-agent-protocol) need the prompt pre-rendered with skill context inlined.
|
|
34
|
-
|
|
35
|
-
`workspace_render.py` is the missing pure function: prompt + `name → value`
|
|
36
|
-
map → rendered prompt string. It mirrors the existing `workspace_*.py`
|
|
37
|
-
Python-authoritative CLI shape.
|
|
38
|
-
|
|
39
|
-
## Decision
|
|
40
|
-
|
|
41
|
-
| # | Question | Verdict | Rationale |
|
|
42
|
-
|---|---|---|---|
|
|
43
|
-
| 1 | Missing **optional** input | **(a)** substitute empty string, leave the heading | Markdown-structure stripping ("this heading belongs to that placeholder") is fragile template-validation masquerading as runtime logic. An empty section is template-author feedback, not a renderer bug. |
|
|
44
|
-
| 2 | Unknown `{{placeholder}}` (no declared input) | **Hard error** (CLI exit 1) | A broken template contract. Leaving the literal wastes host tokens — the agent tries to interpret template syntax as content. |
|
|
45
|
-
| 3 | Value contains `{{...}}` | **Single-pass literal** substitution | Recursive expansion is a code-injection vector; one pass over the original body means an injected token is never re-expanded. |
|
|
46
|
-
| 4 | `skill_hint` coupling | **Stay pure** — return the hint, never append the body | The inbox already owns skill pre-rendering (ADR-066). Appending here would double-append when the inbox calls the renderer. Tier-1 and inbox have different attach policies. |
|
|
47
|
-
| 5 | CLI surface | **Minimal** — `render --role --prompt [--inputs-json <f\|->] [--root]` + `inspect` | `--input k=v` is a shell-escaping trap for multi-line paragraph inputs; `--json`-on-render duplicates `inspect`. Smallest surface that works; add flags when pain emerges. |
|
|
48
|
-
|
|
49
|
-
The `shape` frontmatter field is **advisory documentation only** — the renderer
|
|
50
|
-
does not enforce it (decision deferred to v1).
|
|
51
|
-
|
|
52
|
-
### Node wiring
|
|
53
|
-
|
|
54
|
-
`POST /api/v1/workspace/render` → `{role, prompt, inputs}` → `{rendered,
|
|
55
|
-
skill_hint}`. Inputs flow to the CLI via a temp JSON file (mirrors the inbox
|
|
56
|
-
`--body-file` path — values can be large / multi-line). A missing-required or
|
|
57
|
-
undeclared-placeholder error surfaces as HTTP 400. Role prompts are read from
|
|
58
|
-
the read-only `<packageRoot>/agents/roles` tree, never the write root.
|
|
59
|
-
|
|
60
|
-
## Consequences
|
|
61
|
-
|
|
62
|
-
- The renderer is a pure, side-effect-free function — trivially testable, no
|
|
63
|
-
store / crypto / network coupling.
|
|
64
|
-
- The `skill_hint`-pure boundary means the inbox auto-routing flow is:
|
|
65
|
-
`render(role, prompt, inputs) → {rendered, skill_hint}` then
|
|
66
|
-
`inbox.write(rendered, skill_hint=skill_hint)` — the skill body is appended
|
|
67
|
-
exactly **once**, by the inbox. No double-append.
|
|
68
|
-
- Tier-1 pre-rendering (Codex / Gemini) consumes the same `{rendered,
|
|
69
|
-
skill_hint}` and inlines the skill itself when the drive loop lands.
|
|
70
|
-
|
|
71
|
-
## Alternatives considered
|
|
72
|
-
|
|
73
|
-
- **Heading-aware empty-section stripping (decision 1b)** — rejected as
|
|
74
|
-
fragile Markdown-structure inference with no robust signal for "which heading
|
|
75
|
-
introduces which placeholder".
|
|
76
|
-
- **Forgiving unknown placeholders (leave literal)** — rejected: silent
|
|
77
|
-
token-wasting bug; a template typo should fail loud.
|
|
78
|
-
- **Renderer appends the skill body** — rejected: couples three concerns and
|
|
79
|
-
double-appends on the inbox path.
|
|
80
|
-
- **`--input k=v` repeatable flag** — rejected for v0: multi-line paragraph
|
|
81
|
-
inputs make shell escaping unusable; `--inputs-json` (file / stdin) is the
|
|
82
|
-
one clean mechanism.
|
|
83
|
-
|
|
84
|
-
## Deferred to v1 (debt)
|
|
85
|
-
|
|
86
|
-
- Per-prompt **kill-switch** (disable a template by name without redeploying) —
|
|
87
|
-
belongs at the launch / inbox layer, not in this pure function.
|
|
88
|
-
- **Shape validation** against declared `shape` hints.
|
|
89
|
-
- Render success / failure **metrics**.
|
|
90
|
-
|
|
91
|
-
## References
|
|
92
|
-
|
|
93
|
-
- [`ADR-065`](ADR-065-tier3-inbox-handoff-v0.md) — Tier-3 inbox (first consumer).
|
|
94
|
-
- [`ADR-066`](ADR-066-skill-body-prerendering.md) — skill pre-rendering (owns the append).
|
|
95
|
-
- [`ADR-068`](ADR-068-host-tier-detection.md) — host-tier detection (drives whether to pre-render for Tier-1 or hand off to Tier-3).
|
|
96
|
-
- [`host-agent-protocol`](../contracts/host-agent-protocol.md) — Tier-1 hosts without a skill surface.
|
|
97
|
-
- [`daily-workspace`](../contracts/daily-workspace.md) — workspace surface contract (lists the `/render` endpoint).
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 070
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-08
|
|
5
|
-
decision: tier1-drive-loop
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: employee-product Phase 8 (road-to-employee-product-and-external-proof)
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-070 — Tier-1 host drive loop (v0)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-08. Design converged via AI-council (claude-sonnet-4-5 +
|
|
17
|
-
gpt-4o, design mode, 2026-06-08): both members agreed on decisions 1, 2, 4, 5,
|
|
18
|
-
6; on decision 3 (adapter shape) both sided with the **unified** adapter over
|
|
19
|
-
three copy-paste functions. This ADR covers the **first PR** — the Python
|
|
20
|
-
executor + tests, no HTTP endpoint (that is PR 2).
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
ADR-023 locks a CLI shell-out protocol with three tiers. Tier-1 hosts
|
|
25
|
-
(Claude Code / Codex / Gemini) expose `launch` (`claude -p "<prompt>"
|
|
26
|
-
--output-format json`) and a JSON envelope per turn. `detectHostTier`
|
|
27
|
-
(ADR-068) already classifies a host as Tier 1, but reports
|
|
28
|
-
`mode = tier1-drive-pending` — there was no executor. The rendered prompt now
|
|
29
|
-
exists (`workspace_render.py`, ADR-069). The missing piece is the **drive
|
|
30
|
-
loop**: spawn the host CLI, parse the envelope, record the turn.
|
|
31
|
-
|
|
32
|
-
## Decision
|
|
33
|
-
|
|
34
|
-
| # | Question | Verdict | Rationale |
|
|
35
|
-
|---|---|---|---|
|
|
36
|
-
| 1 | Turn model | **Single-turn.** Tool calls **recorded opaquely, never executed.** | Smallest useful cut. Agentic multi-turn (feed results back) + tool execution are v1 — recording tool-call JSON now keeps the session log complete without an executor. |
|
|
37
|
-
| 2 | Envelope validation | **Explicit required/optional keys per host; fail closed.** Missing `result` or `is_error: true` → error turn, not a fabricated one. | "Named keys only" is too vague; an unrecognised envelope must degrade to the inbox, never invent a turn. |
|
|
38
|
-
| 3 | Adapter shape | **Unified `drive(host, prompt, …)`** + per-host config (`build_args` + `normalise`). | The `ai-council` skill already drives all three hosts through one path; three copy-paste functions discard a proven abstraction. Variance is CLI flags, not control flow. |
|
|
39
|
-
| 4 | Loop vs launch | **Sync drive inside `POST /launch`** when tier 1 (PR 2); no separate `/drive` endpoint. | A two-call split (header then drive) risks orphaned sessions with no rollback / dedup / lock. Sync-in-launch (202 on timeout) is sounder for v0. |
|
|
40
|
-
| 5 | Timeout / failure | **90 s** default, configurable. CLI-missing / non-zero-exit / timeout / bad-envelope → `host.error` record + degrade to Tier-3 inbox. | 30 s is too short for LLM+tool turns; the user is never stuck because every failure path has an inbox fallback. |
|
|
41
|
-
| 6 | First PR | `workspace_drive.py` (claude-code adapter) + stubbed-runner tests + a real-CLI **contract test** (skipped when `claude` absent). **No HTTP endpoint.** | The contract test catches Anthropic-side envelope drift (e.g. `result` renamed) the moment it runs where `claude` is present. The endpoint is PR 2. |
|
|
42
|
-
|
|
43
|
-
### Uniform turn record
|
|
44
|
-
|
|
45
|
-
`drive()` returns, on success:
|
|
46
|
-
|
|
47
|
-
```json
|
|
48
|
-
{"ok": true, "host": "claude-code", "text": "...", "model": null,
|
|
49
|
-
"usage": {"input_tokens": 12, "output_tokens": 34}, "session_id": "...",
|
|
50
|
-
"cost_usd": 0.01, "num_turns": 1, "tool_calls": []}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
On any operational failure it returns `{"ok": false, "host", "error",
|
|
54
|
-
"error_kind"}` (`error_kind` ∈ `unsupported-host` / `empty-prompt` / `timeout`
|
|
55
|
-
/ `cli-missing` / `spawn-failed` / `nonzero-exit` / `bad-envelope`). It never
|
|
56
|
-
raises for an operational failure — the caller records `host.error` via
|
|
57
|
-
`workspace_sessions.py` and degrades to the Tier-3 inbox.
|
|
58
|
-
|
|
59
|
-
## Consequences
|
|
60
|
-
|
|
61
|
-
- The drive loop is the executor behind `tier1-drive-pending`; PR 2 wires it
|
|
62
|
-
into `POST /launch` so a Tier-1 launch actually drives a turn.
|
|
63
|
-
- The session log stays the source of truth: every drive (success or error) is
|
|
64
|
-
one append, through the encrypted store (ADR-064) — `workspace_drive.py`
|
|
65
|
-
never writes JSONL itself.
|
|
66
|
-
- `runner` injection keeps the test suite hermetic; the opt-in contract test is
|
|
67
|
-
the only path that touches a real host CLI.
|
|
68
|
-
|
|
69
|
-
## Alternatives considered
|
|
70
|
-
|
|
71
|
-
- **Multi-turn agentic loop in v0** — rejected: large surface, tool-execution
|
|
72
|
-
trust questions; single-turn is useful and shippable now.
|
|
73
|
-
- **Three per-host functions** — rejected: discards the proven `ai-council`
|
|
74
|
-
unified adapter; the variance is purely CLI flags.
|
|
75
|
-
- **Separate `POST /launch/:id/drive` endpoint** — rejected: orphaned-session
|
|
76
|
-
risk with no rollback / dedup / lock in v0.
|
|
77
|
-
- **Hard-error on bad envelope** — rejected: leaves the user stuck; fail-closed
|
|
78
|
-
to the inbox is the protocol's stated posture (host-agent-protocol).
|
|
79
|
-
|
|
80
|
-
## Deferred to v1 (debt)
|
|
81
|
-
|
|
82
|
-
- Multi-turn agentic loops + **tool-call execution**.
|
|
83
|
-
- `codex` / `gemini` host configs (the unified `drive()` is ready for them).
|
|
84
|
-
- Drive **metrics** (success / timeout rate) + a kill-switch that flips Tier-1
|
|
85
|
-
to inbox-only when the failure rate crosses a threshold.
|
|
86
|
-
- Error-taxonomy refinement (structured error codes).
|
|
87
|
-
|
|
88
|
-
## References
|
|
89
|
-
|
|
90
|
-
- [`ADR-023`](ADR-023-host-agent-protocol.md) — the three-tier CLI protocol.
|
|
91
|
-
- [`ADR-068`](ADR-068-host-tier-detection.md) — detection (`tier1-drive-pending` is what this resolves).
|
|
92
|
-
- [`ADR-069`](ADR-069-prompt-renderer.md) — produces the rendered prompt the drive loop consumes.
|
|
93
|
-
- [`ADR-064`](ADR-064-append-jsonl-per-record-encryption.md) — the encrypted session store turns are appended to.
|
|
94
|
-
- [`host-agent-protocol`](../contracts/host-agent-protocol.md) — fail-closed posture + envelope-as-contract.
|