@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,224 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: beta
|
|
3
|
-
keep-beta-until: 2026-10-10
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# AI-Team Config (`ai_team` block)
|
|
7
|
-
|
|
8
|
-
**Purpose.** Lock the schema, validation, and quota rules for the `/team`
|
|
9
|
-
cross-model review family — one strong external model (via the codex CLI,
|
|
10
|
-
subscription-authed) reviewing inside the repo. Team mode is the **depth**
|
|
11
|
-
complement to the council's **breadth**; this contract is the boundary that
|
|
12
|
-
prevents drift across the settings template, the loader, the `/team`
|
|
13
|
-
wrappers, and the quota counter.
|
|
14
|
-
|
|
15
|
-
**Audience.** Authors of `src/scripts/ai_team/config.ts`, the `/team`
|
|
16
|
-
command family, the doctor `team` section, and the setup wizard. Also
|
|
17
|
-
reviewers checking that new team features keep the schema intact.
|
|
18
|
-
|
|
19
|
-
**Status.** Internal-locked. Changes require a contract version bump and a
|
|
20
|
-
revision entry in the consuming roadmap.
|
|
21
|
-
|
|
22
|
-
## File location
|
|
23
|
-
|
|
24
|
-
Unlike the council (ALWAYS user-global `.ai-council.yml` — see
|
|
25
|
-
[ai-council-config.md](ai-council-config.md)), the `ai_team` block lives in
|
|
26
|
-
the **project settings cascade**:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
<project>/.agent-settings.yml → ai_team: { … }
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
read via `load_agent_settings` (`src/scripts/_lib/agent_settings.ts`) and
|
|
33
|
-
validated by `src/scripts/ai_team/config.ts:load_ai_team_config`. Team mode
|
|
34
|
-
is a per-project posture (default-off), not a per-developer credential
|
|
35
|
-
store — the codex CLI carries the subscription auth itself, so there is
|
|
36
|
-
nothing secret to centralize. The shipped defaults live in
|
|
37
|
-
`src/config/agent-settings.template.yml` and are mirrored by the wizard
|
|
38
|
-
schema (`src/server/schemas/settings.ts`, enforced by the schema↔template
|
|
39
|
-
parity test).
|
|
40
|
-
|
|
41
|
-
## Schema
|
|
42
|
-
|
|
43
|
-
```yaml
|
|
44
|
-
ai_team:
|
|
45
|
-
enabled: <bool> # master switch, default false
|
|
46
|
-
model: <string> # default 'auto'
|
|
47
|
-
allow_delegate: <bool> # second opt-in for the write path, default false
|
|
48
|
-
max_calls_per_day: <int >= 0> # default 50; counts into the shared openai bucket
|
|
49
|
-
suppress_setup_hint: <bool> # default false; cosmetic wizard-hint suppression
|
|
50
|
-
review_gate: # managed governance of the plugin's Stop-hook Review Gate
|
|
51
|
-
managed: <bool> # default false = byte-identical pre-Phase-4 behavior
|
|
52
|
-
max_consecutive_blocks: <int >= 1> # default 3; circuit-breaker loop bound
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
| Key | Type | Default | Semantics |
|
|
56
|
-
|---|---|---|---|
|
|
57
|
-
| `enabled` | bool | `false` | Master switch. `false` = `/team` commands are never suggested and every invocation refuses with an enable pointer — byte-identical to pre-feature behavior. `true` = the family is live; per-command gates below still apply. |
|
|
58
|
-
| `model` | string | `'auto'` | Model handed to the codex CLI. `'auto'` = pass **no** `--model` flag; the codex CLI's own default applies. Any other value passes through **verbatim** as `--model <value>`. |
|
|
59
|
-
| `allow_delegate` | bool | `false` | Second opt-in for the **only** wrapper that delegates write access (`/team:delegate`). Refuses with an enable pointer until BOTH `enabled` and `allow_delegate` are `true`. |
|
|
60
|
-
| `max_calls_per_day` | int ≥ 0 | `50` | Per-day ceiling on team calls, read against the **shared** `cli_call_budget` openai bucket (see § Quota). `0` blocks all team calls. |
|
|
61
|
-
| `suppress_setup_hint` | bool | `false` | Suppress the one-line wizard/init recommendation to install the codex plugin on Claude-Code hosts. Cosmetic only. |
|
|
62
|
-
| `review_gate.managed` | bool | `false` | Managed governance of the codex plugin's Stop-hook Review Gate (Phase 4). `false` = no counting, no circuit breaker — the Stop path is byte-identical to pre-Phase-4 dispatch. `true` = consecutive BLOCK verdicts are counted per session (first-line `ALLOW:`/`BLOCK:` contract of the gate transcript; anything else is honestly `UNKNOWN` and never counted) and the circuit breaker trips at the bound. |
|
|
63
|
-
| `review_gate.max_consecutive_blocks` | int ≥ 1 | `3` | Circuit-breaker bound. At this many CONSECUTIVE BLOCKs in one session a visible notice is injected **exactly once** and the managed layer stops re-blocking — the user decides, never an infinite Claude↔Codex loop. An ALLOW verdict resets the counter. Unknown keys inside `review_gate` are rejected fail-closed, same as the parent block. |
|
|
64
|
-
|
|
65
|
-
### Why `model: 'auto'` instead of a pinned ID
|
|
66
|
-
|
|
67
|
-
A hardcoded model ID rots silently (the council's own CLI default is a
|
|
68
|
-
deliberate, documented *pin* — `DEFAULT_OPENAI_CLI_MODEL` in
|
|
69
|
-
`src/scripts/ai_council/clients.ts`, see
|
|
70
|
-
[ai-council-config.md](ai-council-config.md)). Team mode inverts that:
|
|
71
|
-
under a subscription the *strongest* available model is the rational
|
|
72
|
-
default, and only the codex CLI knows what that currently is. `'auto'`
|
|
73
|
-
therefore delegates the choice to the CLI; a set value is a user pin and
|
|
74
|
-
passes through verbatim — the loader never rewrites or "corrects" it.
|
|
75
|
-
|
|
76
|
-
**`review_gate` (Phase 4, shipped):** the loop-bound governance block is
|
|
77
|
-
live — module `src/scripts/ai_team/review_gate.ts` (counter state under
|
|
78
|
-
`agents/runtime/state/team-review-gate.json`, ledger under
|
|
79
|
-
`agents/runtime/team/events.log`, one `team.gate: BLOCK 2/3` /
|
|
80
|
-
`ALLOW reset` line per gate verdict). The gate itself stays upstream's;
|
|
81
|
-
upstream's own warning applies while it is enabled unmanaged: "The
|
|
82
|
-
review gate can create a long-running Claude/Codex loop and may drain
|
|
83
|
-
usage limits quickly." Any other key stays rejected fail-closed.
|
|
84
|
-
|
|
85
|
-
## Role semantics — the council-verdict design constraint
|
|
86
|
-
|
|
87
|
-
Verbatim from the consuming roadmap's council verdict, binding on every
|
|
88
|
-
team-mode phase:
|
|
89
|
-
|
|
90
|
-
> **Council verdict on team-mode frontmatter (claude-sonnet-4-5 + gpt-4o,
|
|
91
|
-
> 2026-07-12, unanimous REJECT):** skills/commands get NO `team_mode` /
|
|
92
|
-
> role frontmatter. Role semantics belong in the `ai_team` config block +
|
|
93
|
-
> prompt library (reusing subagent-orchestration's implementer/judge frame
|
|
94
|
-
> and status envelope), not smeared across 271 skill files while the
|
|
95
|
-
> feature's role model does not operationally exist. Revisit-if: Phase 2
|
|
96
|
-
> execution turns out to be blocked SPECIFICALLY on artefact-level role
|
|
97
|
-
> metadata — then re-open via decision-revisit-gate, not by silently
|
|
98
|
-
> adding the key.
|
|
99
|
-
|
|
100
|
-
Operationally: ALL role semantics (builder/reviewer/verifier selection,
|
|
101
|
-
eligibility) live HERE — in this `ai_team` block — plus the prompt
|
|
102
|
-
library, reusing `subagent-orchestration`'s implementer/judge frame and
|
|
103
|
-
its `subagent-status.json` envelope. **No `team_mode`/role frontmatter key
|
|
104
|
-
is added to skill/command/rule schemas.**
|
|
105
|
-
|
|
106
|
-
## Quota — one subscription, one counter
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
TEAM CALLS COUNT INTO THE EXISTING cli_call_budget OPENAI BUCKET.
|
|
110
|
-
ONE SUBSCRIPTION, ONE COUNTER. NEVER A PARALLEL COUNTER.
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
The daily CLI-call counter is already **generic per-provider** — no
|
|
114
|
-
team-specific counting system exists or may be built:
|
|
115
|
-
|
|
116
|
-
- **State file:** `~/.event4u/agent-config/cli-calls.json`
|
|
117
|
-
(`CLI_CALLS_FILENAME`, `src/scripts/ai_council/clients.ts:716`), shape
|
|
118
|
-
`{ date: "YYYY-MM-DD", counts: { <provider>: <int> } }`, resets on UTC
|
|
119
|
-
date rollover.
|
|
120
|
-
- **Read:** `load_cli_call_counts(path?)` —
|
|
121
|
-
`src/scripts/ai_council/clients.ts:738`. Returns today's per-provider
|
|
122
|
-
counts; empty on rollover.
|
|
123
|
-
- **Increment:** `record_cli_call(provider, path?)` —
|
|
124
|
-
`src/scripts/ai_council/clients.ts:774`. Returns the new total.
|
|
125
|
-
- **Gate + increment on the transport itself:** `CliClient.ask()` checks
|
|
126
|
-
the counter *before* spawning (`clients.ts` § quota gate, returns
|
|
127
|
-
`error: 'cli_quota_exhausted'` + a `block_quota` events-log line when
|
|
128
|
-
exhausted) and records the call *after* — even failed calls count, so a
|
|
129
|
-
broken CLI cannot burn the budget in a tight loop.
|
|
130
|
-
- **The openai bucket:** `OpenAICliClient` (`clients.ts:1275`) has
|
|
131
|
-
`name = 'openai'`; council CLI calls and team calls land on the **same**
|
|
132
|
-
`counts.openai` entry.
|
|
133
|
-
|
|
134
|
-
A `/team` invocation therefore reuses the existing seams, in preference
|
|
135
|
-
order:
|
|
136
|
-
|
|
137
|
-
1. **Through the transport** — construct `OpenAICliClient` with
|
|
138
|
-
`max_calls_per_day: <ai_team.max_calls_per_day>`; the gate, the
|
|
139
|
-
exhausted-error, the events-log line, and the increment all come for
|
|
140
|
-
free.
|
|
141
|
-
2. **Direct** (for `/team:status` rendering or a pre-flight check) —
|
|
142
|
-
`load_cli_call_counts()['openai'] ?? 0` to read,
|
|
143
|
-
`record_cli_call('openai')` to count. No new helper exists because
|
|
144
|
-
none is needed; adding a team-side duplicate of this counter is a
|
|
145
|
-
contract violation.
|
|
146
|
-
|
|
147
|
-
`ai_team.max_calls_per_day` and the council's
|
|
148
|
-
`cli_call_budget.max_calls_per_day.openai` are two *ceilings* over the
|
|
149
|
-
same *counter*: whichever path a call takes, it increments the one shared
|
|
150
|
-
bucket, and each surface enforces its own configured cap against that
|
|
151
|
-
shared count.
|
|
152
|
-
|
|
153
|
-
**Worked example — two ceilings, one counter.** Council ceiling
|
|
154
|
-
`cli_call_budget.max_calls_per_day.openai: 100`, team ceiling
|
|
155
|
-
`ai_team.max_calls_per_day: 50`, shared counter at 45 openai calls today:
|
|
156
|
-
both paths are open. Five team calls later the counter reads 50 — team
|
|
157
|
-
calls are now blocked (50 >= 50) while council CLI calls continue until
|
|
158
|
-
the counter reaches 100. Whichever path fires a call, the same counter
|
|
159
|
-
moves; each surface only decides where *its* ceiling sits on that shared
|
|
160
|
-
count. `/team status` renders exactly this state: the live counter, both
|
|
161
|
-
ceilings, and which path (if any) is currently blocked.
|
|
162
|
-
|
|
163
|
-
### Team-review envelope
|
|
164
|
-
|
|
165
|
-
Every `/team:review` return — plugin path and multi-host fallback alike — is emitted in the
|
|
166
|
-
team-review status envelope (`src/skills/subagent-orchestration/schemas/team-review-status.json`),
|
|
167
|
-
which extends the `subagent-status.json` frame: `status` (`DONE | DONE_WITH_CONCERNS |
|
|
168
|
-
NEEDS_CONTEXT | BLOCKED`), `findings[]` (`severity`/`evidence`/`suggested_fix`/`location?`),
|
|
169
|
-
`reviewed_ref` (HEAD sha of the bundle), `model` (`'auto'` = codex CLI default), and
|
|
170
|
-
`quota` (`{used, ceiling}` on the shared `cli_call_budget` openai bucket); unparseable model
|
|
171
|
-
output is preserved verbatim in `raw` with status `DONE_WITH_CONCERNS` — never silently dropped.
|
|
172
|
-
Plugin text is summarized INTO the envelope and preserved verbatim beneath — never rewritten.
|
|
173
|
-
<!-- PLACEHOLDER: the team-review-envelope subsection (review-gate ledger
|
|
174
|
-
line format `team.gate: BLOCK n/N` read by /team status) is inserted
|
|
175
|
-
here by the orchestrator in a later step. Do not remove this marker. -->
|
|
176
|
-
|
|
177
|
-
## Validation rules (fail-closed)
|
|
178
|
-
|
|
179
|
-
`load_ai_team_config` / `build_ai_team_config`
|
|
180
|
-
(`src/scripts/ai_team/config.ts`) raise `TeamConfigError` when:
|
|
181
|
-
|
|
182
|
-
1. `ai_team` is present but not a mapping,
|
|
183
|
-
2. any **unknown key** appears under `ai_team` (a typo must never
|
|
184
|
-
silently disable a gate),
|
|
185
|
-
3. `enabled` / `allow_delegate` / `suppress_setup_hint` is not a boolean,
|
|
186
|
-
4. `model` is not a non-empty string,
|
|
187
|
-
5. `max_calls_per_day` is not a non-negative integer (booleans rejected).
|
|
188
|
-
|
|
189
|
-
An **absent** `ai_team` block is not an error — it yields the defaults
|
|
190
|
-
(`AI_TEAM_DEFAULTS`) and the feature stays off.
|
|
191
|
-
|
|
192
|
-
## Default-off posture
|
|
193
|
-
|
|
194
|
-
Every team-mode capability is default-off. With the block absent or
|
|
195
|
-
`enabled: false`, all paths are byte-identical to pre-feature behavior:
|
|
196
|
-
no command suggestions, no wrapper execution, no quota consumption, no
|
|
197
|
-
wizard nagging beyond the single suppressible setup hint.
|
|
198
|
-
`/team:delegate` is doubly gated (`enabled` AND `allow_delegate`).
|
|
199
|
-
|
|
200
|
-
## No-claims constraint
|
|
201
|
-
|
|
202
|
-
No public claim about cross-model review quality ("a second model finds
|
|
203
|
-
errors the first never sees", "two strongest models catch each other's
|
|
204
|
-
errors", or any review-lift assertion) may exist anywhere in the tree
|
|
205
|
-
until the pre-registered three-arm defect-finding benchmark has produced
|
|
206
|
-
a verdict bound in CLAIMS.md. Workflow-value prose is allowed; lift
|
|
207
|
-
claims are not. An honest null keeps the feature documented as workflow
|
|
208
|
-
value only.
|
|
209
|
-
|
|
210
|
-
## Boundary vs. the council
|
|
211
|
-
|
|
212
|
-
Team mode and the council are complements, not variants — the council's
|
|
213
|
-
neutrality contract is untouched by team mode:
|
|
214
|
-
|
|
215
|
-
| Axis | Council ([ai-council-config.md](ai-council-config.md)) | Team (`ai_team`) |
|
|
216
|
-
|---|---|---|
|
|
217
|
-
| Shape | N members, breadth | One strong reviewer, depth |
|
|
218
|
-
| Repo access | NEVER (artefact text + neutral preamble only) | Full (reviewer runs inside the working tree) |
|
|
219
|
-
| Config location | User-global `.ai-council.yml` (ADR-104) | Project `.agent-settings.yml` cascade |
|
|
220
|
-
| Default models | Mid-tier, cost-conscious | Subscription's strongest (`model: 'auto'`) |
|
|
221
|
-
| Quota | `cli_call_budget` per provider | Same counter — shared openai bucket |
|
|
222
|
-
|
|
223
|
-
This link is deliberately one-directional (team → council); the council
|
|
224
|
-
contract does not reference team mode.
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: draft
|
|
3
|
-
keep-draft-until: first-skill-ships
|
|
4
|
-
owner: road-to-analysis-workbench
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Analysis Memory Loop — produce → propose → promote → retrieve
|
|
8
|
-
|
|
9
|
-
> **Status:** draft · **Owner:** road-to-analysis-workbench
|
|
10
|
-
> · **Governed by:** `src/rules/non-destructive-by-default.md`,
|
|
11
|
-
> `src/rules/domain-safety-disclaimer.md`
|
|
12
|
-
|
|
13
|
-
Contract for the closed learning loop in the `analysis-workbench` pack.
|
|
14
|
-
Binds all analysis skills: `blameless-post-mortem`, `root-cause-frameworks`,
|
|
15
|
-
`premortem`, `decision-review`.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## § 1 — Produce: what analysis flows draft
|
|
20
|
-
|
|
21
|
-
Post-mortem, RCA, decision-review, and near-miss flows MUST draft
|
|
22
|
-
`incident-learnings` and `historical-patterns` **candidates** into the
|
|
23
|
-
`/memory propose` provisional JSONL intake stream.
|
|
24
|
-
|
|
25
|
-
Candidates are produced; they are **never auto-promoted** to curated memory.
|
|
26
|
-
The human drives promotion. An analysis skill that skips the draft step or
|
|
27
|
-
claims self-promotion violates this contract.
|
|
28
|
-
|
|
29
|
-
### Candidate schema (minimum)
|
|
30
|
-
|
|
31
|
-
```jsonc
|
|
32
|
-
{
|
|
33
|
-
"type": "incident-learnings" | "historical-patterns",
|
|
34
|
-
"summary": "one-line human-readable pattern",
|
|
35
|
-
"evidence_paths": ["path/to/file", "path/to/other"],
|
|
36
|
-
"decision_surface": ["area1", "area2"],
|
|
37
|
-
"last_validated": "YYYY-MM-DD",
|
|
38
|
-
"review_after_days": 90,
|
|
39
|
-
"applicable_scope": "project" | "domain" | "global"
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`last_validated` defaults to today. `review_after_days` defaults to 90.
|
|
44
|
-
`applicable_scope` defaults to `"project"`.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## § 2 — Propose: intake and dedup pre-check
|
|
49
|
-
|
|
50
|
-
Before drafting a **new** candidate, each skill calls `retrieve()` over the
|
|
51
|
-
same key-space (incident type, affected paths, decision area).
|
|
52
|
-
|
|
53
|
-
- **Match found** — propose a `frequency`/`supersedes` **update** to the
|
|
54
|
-
existing entry, not a new entry. The proposal notes which existing entry is
|
|
55
|
-
being reinforced or superseded.
|
|
56
|
-
- **No match** — draft a new candidate as described in § 1.
|
|
57
|
-
|
|
58
|
-
This dedup check is not optional. A skill that skips it and produces a
|
|
59
|
-
duplicate candidate fails the loop contract.
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## § 3 — Promote: the admission gate
|
|
64
|
-
|
|
65
|
-
`/memory promote` runs `scripts/check_memory_proposal.py`.
|
|
66
|
-
|
|
67
|
-
**Admission criteria** (unchanged from the existing gate):
|
|
68
|
-
|
|
69
|
-
- `≥ 2 distinct file paths` referenced in `evidence_paths`, OR
|
|
70
|
-
- `≥ 3 future decisions` the pattern would change (listed in
|
|
71
|
-
`decision_surface`).
|
|
72
|
-
|
|
73
|
-
Failing either criterion → proposal stays provisional; skill surfaces the
|
|
74
|
-
gap to the user and suggests either deferring or strengthening evidence.
|
|
75
|
-
|
|
76
|
-
The agent NEVER overrides or bypasses this gate. Redaction is enforced by
|
|
77
|
-
`check_memory.py` (no customer names, secrets, internal IPs, project-rooted
|
|
78
|
-
paths) before any entry is promoted.
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## § 4 — Retrieve: staleness is explicit
|
|
83
|
-
|
|
84
|
-
`retrieve()` returns:
|
|
85
|
-
|
|
86
|
-
```jsonc
|
|
87
|
-
{
|
|
88
|
-
"results": [...],
|
|
89
|
-
"skipped": [
|
|
90
|
-
{
|
|
91
|
-
"id": "...",
|
|
92
|
-
"reason": "stale",
|
|
93
|
-
"details": "last_validated=YYYY-MM-DD, review_after_days=90"
|
|
94
|
-
}
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Stale entries (age > `review_after_days`) appear in `skipped`, NOT in
|
|
100
|
-
`results`. A skill that silently uses stale entries (ignores `skipped`)
|
|
101
|
-
violates this contract. Stale matches MUST be surfaced to the user.
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## § 5 — Handoff: incident-commander → blameless-post-mortem
|
|
106
|
-
|
|
107
|
-
`incident-commander` produces a handoff skeleton. That skeleton **may carry
|
|
108
|
-
an empty or TBD root cause** — incomplete evidence at incident close is
|
|
109
|
-
normal.
|
|
110
|
-
|
|
111
|
-
`blameless-post-mortem`:
|
|
112
|
-
|
|
113
|
-
1. **Accepts** any incoming skeleton, complete or not.
|
|
114
|
-
2. Invokes `root-cause-frameworks` to fill gaps; `root-cause-frameworks`
|
|
115
|
-
returns ranked candidates with confidence levels, not a forced verdict.
|
|
116
|
-
3. Marks the post-mortem `status: draft` if root cause remains unresolved
|
|
117
|
-
after the analysis pass.
|
|
118
|
-
4. NEVER rejects or stalls on an incomplete skeleton.
|
|
119
|
-
|
|
120
|
-
A post-mortem marked `draft` can still produce `incident-learnings`
|
|
121
|
-
candidates (`summary` must note the open question).
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## § 6 — Framework-neutrality scope
|
|
126
|
-
|
|
127
|
-
The `framework-neutrality-in-generic-skills` rule governs **tech-stack names**
|
|
128
|
-
(Laravel, React, Django). It does **not** govern analysis method names.
|
|
129
|
-
|
|
130
|
-
5-whys, fishbone, fault-tree, STAMP/STPA, and similar are method names used
|
|
131
|
-
generically across analysis skills. Using them in a skill named
|
|
132
|
-
`root-cause-frameworks` is not a framework-neutrality violation.
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## § 7 — What this contract does NOT cover
|
|
137
|
-
|
|
138
|
-
- The schema of curated memory entries (governed by `low-impact-corpus-format.md`).
|
|
139
|
-
- The internal mechanics of `check_memory_proposal.py` (lives in `src/scripts/`).
|
|
140
|
-
- AI-specific RCA (deferred; gated on `road-to-security-hardening`).
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## See also
|
|
145
|
-
|
|
146
|
-
- [`low-impact-corpus-format.md`](low-impact-corpus-format.md) — curated memory schema.
|
|
147
|
-
- [`ADR-096`](../decisions/ADR-096-analysis-workbench.md) — council decisions behind this contract.
|
|
148
|
-
- `src/skills/blameless-post-mortem/SKILL.md` — primary consumer (Phase 2).
|
|
149
|
-
- `src/skills/root-cause-frameworks/SKILL.md` — RCA engine (Phase 2).
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
stability: experimental
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# At-Rest Encryption Contract
|
|
6
|
-
|
|
7
|
-
> **Status** · v0 / design · 2026-05-24. Phase 8 of the
|
|
8
|
-
> employee-product workstream.
|
|
9
|
-
> Single-user, single-machine encryption for the three workspace
|
|
10
|
-
> stores added in Phases 4 / 5 / 7. Does **not** touch the existing
|
|
11
|
-
> `agents/memory/` store — that gets a separate decision.
|
|
12
|
-
>
|
|
13
|
-
> **Architecture locked 2026-06-08 → [`ADR-062`](../decisions/ADR-062-encrypt-at-rest-store-architecture.md).**
|
|
14
|
-
> Two decisions the store-wiring PR implements: (A) the shipped
|
|
15
|
-
> `workspace_crypto.py` currently uses **Fernet**, not the AES-256-GCM
|
|
16
|
-
> `AC1\0` envelope this contract specifies — the code is re-ciphered to
|
|
17
|
-
> match the contract (safe: flag default-OFF, no field data to migrate);
|
|
18
|
-
> (B) store access is **Python-authoritative end-to-end** — the Node GUI
|
|
19
|
-
> server stops touching the encrypted files directly and routes through
|
|
20
|
-
> the Python CLI (no `keytar`, no dual-runtime crypto). The wiring is a
|
|
21
|
-
> deliberate dedicated PR with a must-have checklist (CI-exercised
|
|
22
|
-
> cipher, concurrency-safe migration, key rotation, kill-switch, envelope
|
|
23
|
-
> versioning, cross-runtime test) — see ADR-062.
|
|
24
|
-
|
|
25
|
-
## Threat model
|
|
26
|
-
|
|
27
|
-
The stores written under `~/.event4u/agent-config/workspace/` will
|
|
28
|
-
hold actual customer data once recruit-session participants adopt
|
|
29
|
-
the workspace: offer drafts naming customer X, mail drafts with
|
|
30
|
-
contact email + phone, memos referencing internal pricing. Three
|
|
31
|
-
threats this contract addresses:
|
|
32
|
-
|
|
33
|
-
| Threat | Surface | Defence |
|
|
34
|
-
|---|---|---|
|
|
35
|
-
| **Lost / stolen laptop** | FDE may not be enabled or may be unlocked | Per-user key wrapped by OS keyring; cipher blob useless without the keyring entry. |
|
|
36
|
-
| **Shared workstation** | Another OS user reads `~/.event4u/...` | POSIX 0600 + keyring entry scoped to the user account. |
|
|
37
|
-
| **Accidental `git add ~/.event4u/...`** | User commits the store from a misconfigured shell | Encrypted blob is opaque; secrets do not leak as plaintext into the diff. Pre-commit hook detects the path; encryption is defence-in-depth. |
|
|
38
|
-
|
|
39
|
-
Explicit non-goals:
|
|
40
|
-
|
|
41
|
-
- **Not** protection against a compromised OS user account.
|
|
42
|
-
- **Not** protection against a malicious admin / root.
|
|
43
|
-
- **Not** protection against memory dumps while the workspace is
|
|
44
|
-
running.
|
|
45
|
-
- **Not** a substitute for full-disk encryption — the contract
|
|
46
|
-
explicitly recommends FDE in `docs/guides/at-rest-encryption.md`.
|
|
47
|
-
|
|
48
|
-
## Cipher choice
|
|
49
|
-
|
|
50
|
-
**AES-256-GCM** for the data blob. Single per-user master key,
|
|
51
|
-
32 random bytes, generated on first workspace launch.
|
|
52
|
-
|
|
53
|
-
The master key is stored in the OS keyring:
|
|
54
|
-
|
|
55
|
-
| OS | Library | Backend |
|
|
56
|
-
|---|---|---|
|
|
57
|
-
| macOS | `keyring` (Python) / `keytar` (Node) | Keychain |
|
|
58
|
-
| Linux | `keyring` / `keytar` | Secret Service / libsecret (gnome-keyring, KWallet) |
|
|
59
|
-
| Windows | `keyring` / `keytar` | Credential Manager |
|
|
60
|
-
|
|
61
|
-
Service name: `event4u-agent-config-workspace`. Account name:
|
|
62
|
-
`<os-user>`. The keyring entry is the **only** persistent copy of
|
|
63
|
-
the master key on the machine — never written to disk in plaintext,
|
|
64
|
-
never logged.
|
|
65
|
-
|
|
66
|
-
## Scope
|
|
67
|
-
|
|
68
|
-
**Shipped — encrypted at rest:**
|
|
69
|
-
|
|
70
|
-
| Path | Form | ADR | Sensitivity |
|
|
71
|
-
|---|---|---|---|
|
|
72
|
-
| `workspace/documents/**/*.md` | whole-file `.md.enc`, Python-authoritative read | 062 | offer / mail / memo / brief bodies |
|
|
73
|
-
| `workspace/documents/**/*.history.jsonl` | per-record (one base64 `AC1\0` line per revision) | 064 | edit metadata + SHAs |
|
|
74
|
-
| `workspace/analytics/events.jsonl` | per-record (one base64 `AC1\0` line per event) | 064 | event counters; lower sensitivity |
|
|
75
|
-
| `workspace/sessions/**/*.jsonl` | per-record (Python-authoritative; Node routes all 5 session endpoints through the CLI) | 064 | host replies may contain customer data |
|
|
76
|
-
|
|
77
|
-
**Intentionally plaintext (encryption declined — [`ADR-065`](../decisions/ADR-065-tier3-inbox-handoff-v0.md)):**
|
|
78
|
-
|
|
79
|
-
| Path | Form | Why not encrypted |
|
|
80
|
-
|---|---|---|
|
|
81
|
-
| `workspace/inbox/**/*.md` | plaintext, ephemeral (24h prune), Python-authoritative, ships dark behind `AGENT_CONFIG_TIER3_INBOX` | the Tier-3 hand-off holds a rendered prompt the user **reads to copy-paste**; that same content already lives in the **encrypted sessions store**, so encrypting it defends against no incremental threat (security theater). **Trigger to revisit:** if the inbox ever carries content NOT mirrored in sessions, encrypt it via the documents whole-file `.md.enc` pattern. |
|
|
82
|
-
|
|
83
|
-
Does **not** encrypt (v0):
|
|
84
|
-
|
|
85
|
-
- `agents/memory/` — under the maintainer's repo, separate decision.
|
|
86
|
-
- `.agent-settings.yml` — config, no customer data.
|
|
87
|
-
- `package.json` / lockfiles / source — public surface.
|
|
88
|
-
|
|
89
|
-
## Storage layout (encrypted)
|
|
90
|
-
|
|
91
|
-
Each plaintext file is replaced by a sibling cipher file:
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
workspace/documents/offer/kundeX-angebot-2026-05-24.md
|
|
95
|
-
→ workspace/documents/offer/kundeX-angebot-2026-05-24.md.enc
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
`.enc` envelope:
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
| 4 bytes | magic: "AC1\0"
|
|
102
|
-
| 1 byte | version: 0x01
|
|
103
|
-
| 12 bytes | GCM nonce
|
|
104
|
-
| 16 bytes | GCM auth tag
|
|
105
|
-
| N bytes | ciphertext
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Filename itself is **not** encrypted in v0 (filename leakage is an
|
|
109
|
-
accepted trade-off — slugs are kebab-case derived from titles and
|
|
110
|
-
may contain customer names; mitigation: title slug allowlist
|
|
111
|
-
documented in `workspace-documents.md`).
|
|
112
|
-
|
|
113
|
-
## Part B operations (documents) — shipped
|
|
114
|
-
|
|
115
|
-
`workspace_documents.py` owns document encryption (Python-authoritative,
|
|
116
|
-
ADR-062 Option 4):
|
|
117
|
-
|
|
118
|
-
- **Write** (`create` / `save`): when the flag is on, the `.md` body is
|
|
119
|
-
written as `<slug>.md.enc` via atomic temp+fsync+rename; the opposite form
|
|
120
|
-
is removed so a slug never has both.
|
|
121
|
-
- **Read** (`read` / `list` / `export`): auto-detects `.md` vs `.md.enc` on
|
|
122
|
-
disk and decrypts the `.enc` — **independent of the flag** (decryption needs
|
|
123
|
-
only the key), so a read is correct after the flag flips either way.
|
|
124
|
-
- **Node read path**: the GUI server's recent-documents rail calls
|
|
125
|
-
`workspace_documents.py list --json --root <writeRoot>/workspace/documents`
|
|
126
|
-
rather than reading files directly — so it never has to decrypt `.enc` in
|
|
127
|
-
Node. The script is resolved from the server source tree.
|
|
128
|
-
- **`migrate`**: non-destructive plaintext → `.enc` (encrypt, verify-decrypt,
|
|
129
|
-
then delete plaintext; idempotent; rolls back a file on verify failure).
|
|
130
|
-
- **`decrypt-all`**: kill-switch — every `.md.enc` back to plaintext `.md`
|
|
131
|
-
(works after the flag is off; `AGENT_CONFIG_NO_ENCRYPTION` also forces
|
|
132
|
-
plaintext writes).
|
|
133
|
-
- **`rekey`**: rotate the master key and re-encrypt every document under the
|
|
134
|
-
new key (coherent only when the key lives in keyring/keyfile, not pinned via
|
|
135
|
-
`AGENT_CONFIG_WORKSPACE_KEY`).
|
|
136
|
-
|
|
137
|
-
## Feature flag + migration
|
|
138
|
-
|
|
139
|
-
Single setting in `.agent-settings.yml`:
|
|
140
|
-
|
|
141
|
-
```yaml
|
|
142
|
-
workspace:
|
|
143
|
-
encrypt_at_rest: true # default from v1.0
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Migration on first launch after upgrade:
|
|
147
|
-
|
|
148
|
-
1. Detect any plaintext files under the encrypted scope.
|
|
149
|
-
2. Show one-time modal: "Encrypt your local workspace store?"
|
|
150
|
-
with options [Encrypt now] / [Keep plaintext (not recommended)].
|
|
151
|
-
3. On "Encrypt now": iterate, encrypt-in-place atomically (write
|
|
152
|
-
`.enc.tmp`, fsync, rename, delete plaintext). Roll back on any
|
|
153
|
-
error.
|
|
154
|
-
4. On "Keep plaintext": flip `encrypt_at_rest: false`. Next
|
|
155
|
-
workspace launch re-asks unless the user sets
|
|
156
|
-
`workspace.encrypt_at_rest_dismissed: true`.
|
|
157
|
-
|
|
158
|
-
## Recovery path
|
|
159
|
-
|
|
160
|
-
The master key lives in the OS keyring. Recovery scenarios:
|
|
161
|
-
|
|
162
|
-
- **Re-install OS / move to a new machine**: workspace prompts on
|
|
163
|
-
first launch to either restore an exported key file (`.event4u-recovery.key`)
|
|
164
|
-
or treat the encrypted store as inaccessible.
|
|
165
|
-
- **Lost master key, no export**: workspace surfaces a destructive
|
|
166
|
-
banner: "encrypted store is unrecoverable; delete and start
|
|
167
|
-
fresh?" — explicit user click required.
|
|
168
|
-
- **Key export**: `npx @event4u/agent-config workspace:export-key`
|
|
169
|
-
prompts the user to pick a target file. The export is the raw
|
|
170
|
-
32-byte key in a labelled wrapper; the user is responsible for
|
|
171
|
-
storing it safely (password manager, hardware token, paper
|
|
172
|
-
backup).
|
|
173
|
-
|
|
174
|
-
## Coverage (Phase 8 Step 4)
|
|
175
|
-
|
|
176
|
-
- Round-trip: encrypt → decrypt produces identical bytes for ≥ 5
|
|
177
|
-
fixture documents.
|
|
178
|
-
- Wrong key → GCM auth failure → renderer surfaces a clear "wrong
|
|
179
|
-
key" error, not a generic crash.
|
|
180
|
-
- Keyring-missing-entry path (mocked) → migration modal appears.
|
|
181
|
-
- Concurrent writers → second writer waits on the file lock, no
|
|
182
|
-
truncation.
|
|
183
|
-
- Threat-model checklist verified against `threat-modeling` skill.
|
|
184
|
-
|
|
185
|
-
## Cross-references
|
|
186
|
-
|
|
187
|
-
- Phase 4 stores: [`daily-workspace`](daily-workspace.md).
|
|
188
|
-
- Phase 5 stores: [`workspace-documents`](workspace-documents.md).
|
|
189
|
-
- Phase 7 store: [`local-analytics`](local-analytics.md).
|
|
190
|
-
- Guide (deferred to Phase 8 Step 5): `docs/guides/at-rest-encryption.md`.
|
|
191
|
-
- Memory-store decision (deferred): out of scope for v0.
|