@event4u/agent-config 8.1.0 → 8.3.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 +3 -3
- package/CHANGELOG.md +83 -292
- package/MIGRATION.md +18 -0
- package/README.md +86 -3
- package/dist/agent-src/commands/agents/init.md +3 -3
- package/dist/agent-src/commands/chat-history/import.md +5 -5
- package/dist/agent-src/commands/chat-history.md +1 -1
- package/dist/agent-src/commands/condense.md +1 -1
- package/dist/agent-src/commands/context/create.md +1 -1
- package/dist/agent-src/commands/council/analysis.md +2 -2
- package/dist/agent-src/commands/council/default.md +3 -3
- package/dist/agent-src/commands/council/design.md +2 -2
- package/dist/agent-src/commands/council/optimize.md +1 -1
- package/dist/agent-src/commands/council/pr.md +2 -2
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +1 -1
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +2 -2
- package/dist/agent-src/commands/judge/on-diff.md +1 -1
- package/dist/agent-src/commands/judge/steps.md +3 -1
- package/dist/agent-src/commands/memory/add.md +2 -2
- package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
- package/dist/agent-src/commands/memory/load.md +1 -1
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +1 -1
- package/dist/agent-src/commands/memory/propose.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +3 -3
- package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/optimize-project.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/project-analyze.md +1 -1
- package/dist/agent-src/commands/project-health.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +2 -2
- package/dist/agent-src/commands/roadmap/process-full.md +3 -1
- package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
- package/dist/agent-src/commands/roadmap/process-step.md +3 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +7 -7
- package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
- package/dist/agent-src/commands/sync-gitignore.md +4 -4
- package/dist/agent-src/commands/work.md +3 -3
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
- package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/presets/README.md +1 -1
- package/dist/agent-src/profiles/README.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +2 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
- package/dist/agent-src/rules/media-governance-routing.md +1 -1
- package/dist/agent-src/rules/no-roadmap-references.md +3 -3
- package/dist/agent-src/rules/preservation-guard.md +2 -2
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
- package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/telegraph-speak.md +1 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
- package/dist/agent-src/skills/api-design/SKILL.md +1 -1
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
- package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
- package/dist/agent-src/skills/code-review/SKILL.md +3 -4
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
- package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
- package/dist/agent-src/skills/database/SKILL.md +2 -1
- package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
- package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
- package/dist/agent-src/skills/flux/SKILL.md +10 -9
- package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
- package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
- package/dist/agent-src/skills/livewire/SKILL.md +10 -9
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
- package/dist/agent-src/skills/module-management/SKILL.md +2 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
- package/dist/agent-src/skills/premortem/SKILL.md +1 -1
- package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
- package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
- package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
- package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
- package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
- package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
- package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
- package/dist/agent-src/templates/agent-settings.md +34 -25
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +4 -4
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
- package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
- package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
- package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
- package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
- package/dist/agent-src/templates/roadmaps.md +9 -4
- package/dist/agent-src/templates/rule.md +3 -3
- package/dist/agent-src/templates/scripts/README.md +6 -6
- package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
- package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
- package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
- package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
- package/dist/agent-src/templates/skill.md +2 -2
- package/dist/cli/python/knowledge_ingest.js +24 -3
- package/dist/cli/python/knowledge_ingest.js.map +1 -1
- package/dist/cli/python/workspace_analytics.js +23 -3
- package/dist/cli/python/workspace_analytics.js.map +1 -1
- package/dist/cli/python/workspace_crypto.js +23 -3
- package/dist/cli/python/workspace_crypto.js.map +1 -1
- package/dist/cli/python/workspace_documents.js +23 -3
- package/dist/cli/python/workspace_documents.js.map +1 -1
- package/dist/cli/python/workspace_drive.js +24 -3
- package/dist/cli/python/workspace_drive.js.map +1 -1
- package/dist/cli/python/workspace_drive_health.js +23 -3
- package/dist/cli/python/workspace_drive_health.js.map +1 -1
- package/dist/cli/python/workspace_explain.js +23 -3
- package/dist/cli/python/workspace_explain.js.map +1 -1
- package/dist/cli/python/workspace_hosts.js +23 -3
- package/dist/cli/python/workspace_hosts.js.map +1 -1
- package/dist/cli/python/workspace_inbox.js +23 -3
- package/dist/cli/python/workspace_inbox.js.map +1 -1
- package/dist/cli/python/workspace_render.js +23 -3
- package/dist/cli/python/workspace_render.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +23 -3
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli/python/workspace_sessions.js +23 -3
- package/dist/cli/python/workspace_sessions.js.map +1 -1
- package/dist/cli/python/workspace_skills.js +23 -3
- package/dist/cli/python/workspace_skills.js.map +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +118 -118
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/install/install.mjs +647 -408
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/routes/settings.js +4 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +1 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +2 -2
- package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
- package/docs/benchmark.md +40 -0
- package/docs/contracts/CHANGELOG-conventions.md +8 -5
- package/docs/contracts/branch-protection-policy.md +14 -5
- package/docs/contracts/mcp-phase-1-scope.md +75 -0
- package/docs/contracts/mcp-tool-inventory.md +22 -15
- package/docs/contracts/release-pr-gating.md +22 -11
- package/docs/contracts/skill-bundled-assets.md +2 -2
- package/docs/customization.md +1 -1
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
- package/docs/decisions/ADR-111-canonical-glama-listing.md +97 -0
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +92 -0
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +201 -0
- package/docs/decisions/INDEX.md +3 -0
- package/docs/distribution/registry-submissions.md +1 -1
- package/docs/getting-started.md +8 -6
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
- package/docs/guidelines/agent-infra/layered-settings.md +4 -4
- package/docs/guidelines/agent-infra/memory-access.md +19 -18
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
- package/docs/guidelines/agent-infra/role-contracts.md +1 -1
- package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
- package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/installation.md +13 -14
- package/docs/mcp-server.md +32 -20
- package/docs/proof.md +1 -1
- package/docs/setup/mcp-cloud-endpoints.md +9 -2
- package/docs/setup/per-ide/claude-code.md +10 -4
- package/package.json +4 -3
- package/src/config/agent-settings.template.yml +31 -17
- package/src/config/host-capabilities.yml +25 -16
- package/src/config/profiles/balanced.ini +5 -3
- package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
- package/src/scripts/_cli/cmd_conformance.ts +23 -4
- package/src/scripts/_cli/cmd_doctor.ts +196 -8
- package/src/scripts/_cli/cmd_explain.ts +23 -4
- package/src/scripts/_cli/cmd_export.ts +23 -4
- package/src/scripts/_cli/cmd_fleet.ts +23 -4
- package/src/scripts/_cli/cmd_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_preflight.ts +24 -4
- package/src/scripts/_cli/cmd_prune.ts +23 -4
- package/src/scripts/_cli/cmd_refresh.ts +23 -4
- package/src/scripts/_cli/cmd_settings_check.ts +23 -4
- package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_sync.ts +23 -4
- package/src/scripts/_cli/cmd_uninstall.ts +45 -4
- package/src/scripts/_cli/cmd_update.ts +23 -4
- package/src/scripts/_cli/cmd_upgrade.ts +307 -17
- package/src/scripts/_cli/cmd_validate.ts +23 -4
- package/src/scripts/_cli/cmd_versions.ts +23 -4
- package/src/scripts/_dispatch.bash +62 -19
- package/src/scripts/_lib/claude_plugin.ts +83 -0
- package/src/scripts/_lib/claude_settings_hooks.ts +251 -0
- package/src/scripts/_lib/knowledge_global.ts +24 -2
- package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
- package/src/scripts/_lib/link_crypto.ts +24 -5
- package/src/scripts/_lib/pin_resolver.ts +24 -3
- package/src/scripts/adoption_report.ts +23 -4
- package/src/scripts/adoption_snapshot.ts +23 -1
- package/src/scripts/adoption_status.ts +23 -4
- package/src/scripts/adr/regenerate_index.ts +24 -3
- package/src/scripts/ai_council/airgap.ts +25 -2
- package/src/scripts/ai_council/compile_corpus.ts +24 -2
- package/src/scripts/ai_council/pricing.ts +11 -1
- package/src/scripts/analysis_freshness.ts +23 -4
- package/src/scripts/annotate_discovery.ts +23 -1
- package/src/scripts/apply_modules_config.ts +23 -4
- package/src/scripts/audit_adr_coverage.ts +23 -4
- package/src/scripts/audit_auto_rules.ts +23 -1
- package/src/scripts/audit_cloud_compatibility.ts +23 -4
- package/src/scripts/audit_command_surface.ts +23 -4
- package/src/scripts/audit_initial_context.ts +23 -3
- package/src/scripts/audit_likelihood.ts +23 -1
- package/src/scripts/audit_mcp_tools.ts +23 -3
- package/src/scripts/audit_overlap.ts +23 -1
- package/src/scripts/audit_skill_descriptions.ts +24 -2
- package/src/scripts/audit_skill_overlap.ts +23 -1
- package/src/scripts/audit_user_type_axis.ts +23 -4
- package/src/scripts/backfill_model_tier.ts +23 -4
- package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
- package/src/scripts/bench_ab_clone.ts +23 -1
- package/src/scripts/bench_ab_diff.ts +23 -1
- package/src/scripts/bench_ab_integrity.ts +23 -1
- package/src/scripts/bench_ab_run.ts +23 -2
- package/src/scripts/bench_ab_task_runner.ts +23 -1
- package/src/scripts/bench_ab_tracka_run.ts +23 -2
- package/src/scripts/bench_ab_v2_run.ts +23 -1
- package/src/scripts/bench_ab_v2_stats.ts +23 -1
- package/src/scripts/bench_baseline_ready.ts +23 -1
- package/src/scripts/bench_condense_memory.ts +23 -1
- package/src/scripts/bench_drift_check.ts +23 -2
- package/src/scripts/bench_matrix.ts +23 -4
- package/src/scripts/bench_per_tool.ts +23 -1
- package/src/scripts/bench_quality_run.ts +23 -2
- package/src/scripts/bench_rtk_savings.ts +23 -1
- package/src/scripts/bench_rule_load_latency.ts +23 -2
- package/src/scripts/bench_run.ts +23 -2
- package/src/scripts/bench_runner.ts +23 -1
- package/src/scripts/build_cloud_bundle.ts +23 -3
- package/src/scripts/build_discovery_manifest.ts +23 -4
- package/src/scripts/build_linear_digest.ts +23 -3
- package/src/scripts/build_mcp_registry_manifest.ts +23 -4
- package/src/scripts/build_rule_trigger_matrix.ts +23 -4
- package/src/scripts/capture_showcase_session.ts +23 -1
- package/src/scripts/chat_history.ts +24 -3
- package/src/scripts/check_always_budget.ts +23 -2
- package/src/scripts/check_artefact_checksums.ts +23 -4
- package/src/scripts/check_augment_description_cap.ts +23 -4
- package/src/scripts/check_augmentignore.ts +23 -4
- package/src/scripts/check_beta_review_markers.ts +23 -4
- package/src/scripts/check_cluster_patterns.ts +23 -4
- package/src/scripts/check_command_count_messaging.ts +23 -4
- package/src/scripts/check_comparison.ts +23 -1
- package/src/scripts/check_condensation.ts +24 -3
- package/src/scripts/check_condensed_paths.ts +23 -2
- package/src/scripts/check_context_paths.ts +23 -4
- package/src/scripts/check_council_config_location.ts +23 -4
- package/src/scripts/check_council_layout.ts +23 -4
- package/src/scripts/check_council_references.ts +23 -4
- package/src/scripts/check_discovery_determinism.ts +24 -4
- package/src/scripts/check_gate_paths.ts +23 -4
- package/src/scripts/check_generated_artefact_headers.ts +23 -4
- package/src/scripts/check_generator_output_coverage.ts +23 -4
- package/src/scripts/check_gitignore_freshness.ts +23 -4
- package/src/scripts/check_iron_law_prominence.ts +23 -4
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_kernel_rule_bundle.ts +23 -4
- package/src/scripts/check_knowledge_cards.ts +23 -1
- package/src/scripts/check_md_language.ts +23 -4
- package/src/scripts/check_media_deps.ts +24 -1
- package/src/scripts/check_memory.ts +24 -2
- package/src/scripts/check_memory_proposal.ts +23 -4
- package/src/scripts/check_module_management_neutral.ts +23 -4
- package/src/scripts/check_no_conflict_markers.ts +23 -4
- package/src/scripts/check_no_external_sources.ts +23 -4
- package/src/scripts/check_no_local_settings_committed.ts +24 -4
- package/src/scripts/check_no_new_legacy_path.ts +23 -4
- package/src/scripts/check_no_roadmap_refs.ts +23 -4
- package/src/scripts/check_one_off_location.ts +23 -4
- package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
- package/src/scripts/check_portability.ts +24 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +23 -4
- package/src/scripts/check_public_links.ts +23 -4
- package/src/scripts/check_quality_regression.ts +23 -2
- package/src/scripts/check_references.ts +23 -4
- package/src/scripts/check_release_includes_discovery.ts +23 -4
- package/src/scripts/check_release_pr_shape.ts +23 -4
- package/src/scripts/check_release_published.ts +23 -4
- package/src/scripts/check_release_trunk_sync.ts +23 -4
- package/src/scripts/check_reply_consistency.ts +23 -4
- package/src/scripts/check_roadmap_trackable.ts +23 -4
- package/src/scripts/check_role_doc_links.ts +23 -4
- package/src/scripts/check_safety_floor_untouched.ts +24 -4
- package/src/scripts/check_site_links.ts +23 -1
- package/src/scripts/check_skill_gaps.ts +23 -1
- package/src/scripts/check_skill_requires.ts +23 -4
- package/src/scripts/check_structural_breaking.ts +24 -4
- package/src/scripts/check_surface_tiers.ts +23 -4
- package/src/scripts/check_template_pin_drift.ts +23 -4
- package/src/scripts/check_test_coverage_diff.ts +23 -4
- package/src/scripts/check_token_optimizer_freshness.ts +23 -4
- package/src/scripts/check_token_quality_golden.ts +23 -2
- package/src/scripts/check_token_regression.ts +23 -2
- package/src/scripts/check_tracked_but_ignored.ts +24 -4
- package/src/scripts/check_trigger_evals.ts +23 -4
- package/src/scripts/check_trunk_drift.ts +24 -1
- package/src/scripts/check_update_banner.ts +23 -4
- package/src/scripts/ci_summary.ts +23 -4
- package/src/scripts/ci_time_ratio.ts +23 -4
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +23 -4
- package/src/scripts/condense.ts +30 -31
- package/src/scripts/condense_memory.ts +24 -2
- package/src/scripts/config/packs.ts +24 -4
- package/src/scripts/config/session_profiles.ts +23 -4
- package/src/scripts/context_hygiene_hook.ts +24 -3
- package/src/scripts/cost_by_conversation.ts +23 -4
- package/src/scripts/cost_summary.ts +23 -4
- package/src/scripts/council_cli.ts +35 -7
- package/src/scripts/council_prune.ts +25 -2
- package/src/scripts/cross_repo_retrieve.ts +23 -4
- package/src/scripts/discovery_stats.ts +23 -4
- package/src/scripts/evidence_report.ts +23 -1
- package/src/scripts/export_replay_corpus.ts +23 -2
- package/src/scripts/extract_audit_patterns.ts +23 -1
- package/src/scripts/first_run_gate_hook.ts +24 -3
- package/src/scripts/gen_discovery_baseline.ts +23 -4
- package/src/scripts/generate_capabilities_index.ts +24 -5
- package/src/scripts/generate_capability_matrix.ts +23 -4
- package/src/scripts/generate_catalog.ts +23 -1
- package/src/scripts/generate_command_flows.ts +23 -4
- package/src/scripts/generate_cookbook.ts +23 -4
- package/src/scripts/generate_index.ts +23 -4
- package/src/scripts/generate_ownership_matrix.ts +23 -1
- package/src/scripts/generate_pack_manifests.ts +24 -5
- package/src/scripts/generate_role_experiences_catalog.ts +23 -4
- package/src/scripts/hooks/block_no_verify.ts +23 -4
- package/src/scripts/hooks/design_slop_hook.ts +24 -3
- package/src/scripts/hooks/dispatch_hook.ts +47 -14
- package/src/scripts/hooks/replay_hook.ts +23 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
- package/src/scripts/hooks_doctor.ts +23 -2
- package/src/scripts/hooks_status.ts +23 -2
- package/src/scripts/injection_scan_hook.ts +24 -5
- package/src/scripts/install +23 -4
- package/src/scripts/install.ts +102 -44
- package/src/scripts/inventory_abstraction_budget.ts +23 -1
- package/src/scripts/inventory_frontmatter.ts +23 -1
- package/src/scripts/inventory_meta_layers.ts +23 -1
- package/src/scripts/iron_law_sha.ts +23 -4
- package/src/scripts/janitor.ts +23 -4
- package/src/scripts/knowledge_global_cli.ts +24 -2
- package/src/scripts/linked_projects_list.ts +23 -4
- package/src/scripts/lint_agent_security.ts +23 -4
- package/src/scripts/lint_agent_skill_names.ts +23 -4
- package/src/scripts/lint_agents_layout.ts +23 -4
- package/src/scripts/lint_agents_md.ts +23 -4
- package/src/scripts/lint_archived_skills.ts +23 -4
- package/src/scripts/lint_artefact_frontmatter.ts +23 -4
- package/src/scripts/lint_bench_ab.ts +23 -4
- package/src/scripts/lint_bench_corpus.ts +23 -2
- package/src/scripts/lint_command_flow_coverage.ts +23 -4
- package/src/scripts/lint_command_routing.ts +23 -4
- package/src/scripts/lint_command_tiers.ts +23 -2
- package/src/scripts/lint_command_verbs.ts +23 -4
- package/src/scripts/lint_commit_subjects.ts +24 -4
- package/src/scripts/lint_confusables.ts +25 -5
- package/src/scripts/lint_context_spine_usage.ts +23 -4
- package/src/scripts/lint_discovery_manifest.ts +23 -4
- package/src/scripts/lint_discovery_vocabulary.ts +23 -4
- package/src/scripts/lint_empty_roadmaps.ts +23 -4
- package/src/scripts/lint_eval_freshness.ts +23 -4
- package/src/scripts/lint_examples.ts +23 -4
- package/src/scripts/lint_explain_trace.ts +23 -4
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +23 -4
- package/src/scripts/lint_framework_leakage.ts +23 -4
- package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
- package/src/scripts/lint_ghostwriter_source.ts +23 -4
- package/src/scripts/lint_glama_drift.ts +75 -0
- package/src/scripts/lint_global_paths.ts +23 -2
- package/src/scripts/lint_handoffs.ts +23 -4
- package/src/scripts/lint_hidden_unicode.ts +24 -5
- package/src/scripts/lint_hook_concern_budget.ts +23 -4
- package/src/scripts/lint_hook_manifest.ts +23 -2
- package/src/scripts/lint_instruction_smuggling.ts +25 -5
- package/src/scripts/lint_legal_pack.ts +23 -1
- package/src/scripts/lint_load_context.ts +23 -4
- package/src/scripts/lint_marketplace.ts +24 -3
- package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
- package/src/scripts/lint_mcp_config_security.ts +25 -5
- package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
- package/src/scripts/lint_media_policy_linkage.ts +23 -4
- package/src/scripts/lint_missions.ts +23 -4
- package/src/scripts/lint_model_tier_coverage.ts +23 -4
- package/src/scripts/lint_namespace.ts +23 -4
- package/src/scripts/lint_namespace_collisions.ts +23 -4
- package/src/scripts/lint_new_skill_gate.ts +23 -4
- package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
- package/src/scripts/lint_one_off_age.ts +23 -4
- package/src/scripts/lint_orchestration_dsl.ts +23 -4
- package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
- package/src/scripts/lint_pack_boundaries.ts +23 -4
- package/src/scripts/lint_pack_dependencies.ts +23 -2
- package/src/scripts/lint_pack_first_win.ts +23 -4
- package/src/scripts/lint_pack_risk_class.ts +23 -1
- package/src/scripts/lint_persona_governance.ts +23 -4
- package/src/scripts/lint_positioning.ts +23 -4
- package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
- package/src/scripts/lint_readme_jargon.ts +23 -4
- package/src/scripts/lint_readme_size.ts +23 -4
- package/src/scripts/lint_regression.ts +23 -4
- package/src/scripts/lint_roadmap_blockers.ts +23 -4
- package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
- package/src/scripts/lint_roadmap_complexity.ts +23 -4
- package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
- package/src/scripts/lint_role_experiences.ts +23 -4
- package/src/scripts/lint_rule_interactions.ts +23 -4
- package/src/scripts/lint_rule_tiers.ts +24 -3
- package/src/scripts/lint_showcase_sessions.ts +23 -4
- package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
- package/src/scripts/lint_skill_originality.ts +23 -4
- package/src/scripts/lint_skill_tools.ts +23 -4
- package/src/scripts/lint_subagent_determinism.ts +23 -4
- package/src/scripts/lint_ticket_buildable.ts +23 -4
- package/src/scripts/lint_topics_yaml.ts +23 -4
- package/src/scripts/lint_trust_coherence.ts +23 -4
- package/src/scripts/lint_value_dashboard.ts +23 -4
- package/src/scripts/lint_workflow_security.ts +23 -4
- package/src/scripts/lint_workspace_boundary.ts +23 -4
- package/src/scripts/mcp_exec/safety_envelope.ts +105 -0
- package/src/scripts/mcp_parity_smoke.ts +23 -2
- package/src/scripts/mcp_registry_submit.sh +14 -3
- package/src/scripts/mcp_render.ts +23 -4
- package/src/scripts/mcp_server/__main__.ts +6 -8
- package/src/scripts/mcp_server/consumer_tool_catalog.json +78 -3
- package/src/scripts/mcp_server/tools.ts +731 -0
- package/src/scripts/mcp_telemetry_health.ts +23 -4
- package/src/scripts/mcp_telemetry_query.ts +23 -4
- package/src/scripts/mcp_telemetry_store.ts +23 -4
- package/src/scripts/measure_augment_budget.ts +23 -1
- package/src/scripts/measure_density.ts +23 -1
- package/src/scripts/measure_frugality_savings.ts +23 -1
- package/src/scripts/measure_markitdown_lift.ts +23 -1
- package/src/scripts/measure_patterns.ts +23 -1
- package/src/scripts/measure_projection_bytes.ts +23 -1
- package/src/scripts/measure_rule_budget.ts +23 -4
- package/src/scripts/measure_skill_reduction.ts +23 -1
- package/src/scripts/memory_hash.ts +24 -2
- package/src/scripts/memory_lookup.ts +24 -2
- package/src/scripts/memory_report.ts +24 -2
- package/src/scripts/memory_signal.ts +24 -2
- package/src/scripts/memory_status.ts +26 -2
- package/src/scripts/migrate_command_suggestions.ts +23 -4
- package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
- package/src/scripts/migration_status.ts +25 -4
- package/src/scripts/mine_missing_guardrails.ts +23 -1
- package/src/scripts/mine_session.ts +23 -1
- package/src/scripts/minimal_safe_diff_hook.ts +24 -3
- package/src/scripts/new_skill.ts +23 -3
- package/src/scripts/onboarding_gate_hook.ts +24 -3
- package/src/scripts/parity/coverage_diff.ts +25 -3
- package/src/scripts/parity/phase_gate.ts +25 -4
- package/src/scripts/parity/replay.ts +25 -3
- package/src/scripts/pattern_share.ts +23 -4
- package/src/scripts/plan_physical_move.ts +23 -4
- package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
- package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
- package/src/scripts/prediction-pool/score_ev.ts +24 -3
- package/src/scripts/print_required_checks.ts +24 -4
- package/src/scripts/probe_host_compliance.ts +23 -2
- package/src/scripts/probe_projection_fidelity.ts +23 -1
- package/src/scripts/probe_skill_registration.ts +24 -2
- package/src/scripts/profile_staleness_hook.ts +24 -3
- package/src/scripts/profile_use.ts +23 -4
- package/src/scripts/project_thin_rules.ts +23 -3
- package/src/scripts/propose_modules_config.ts +23 -4
- package/src/scripts/prototype_lint_contradictions.ts +23 -1
- package/src/scripts/prove_pack_extractable.ts +23 -4
- package/src/scripts/readme_linter.ts +23 -3
- package/src/scripts/redact_hook_capture.ts +23 -4
- package/src/scripts/refine_ticket_detect.ts +23 -4
- package/src/scripts/release.ts +226 -43
- package/src/scripts/render_benchmark_composite.ts +23 -4
- package/src/scripts/render_benchmark_md.ts +23 -4
- package/src/scripts/roadmap_progress_hook.ts +46 -16
- package/src/scripts/run_skill_evals.ts +23 -4
- package/src/scripts/runtime_dispatcher.ts +23 -4
- package/src/scripts/runtime_registry.ts +23 -4
- package/src/scripts/score_skill_selection.ts +23 -1
- package/src/scripts/security_audit_config.ts +24 -5
- package/src/scripts/skill_collision_clusters.ts +23 -4
- package/src/scripts/skill_discovery.ts +23 -4
- package/src/scripts/skill_linter.ts +23 -2
- package/src/scripts/skill_preview.ts +23 -4
- package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
- package/src/scripts/skill_usage_collect.ts +23 -4
- package/src/scripts/smoke_path_resolution.ts +23 -4
- package/src/scripts/smoke_quickstart.ts +23 -4
- package/src/scripts/snapshot_agent_outputs.ts +23 -4
- package/src/scripts/spotcheck_thin_root.ts +23 -4
- package/src/scripts/sync_agent_settings.ts +23 -4
- package/src/scripts/sync_github_metadata.ts +23 -4
- package/src/scripts/sync_gitignore.ts +23 -4
- package/src/scripts/telegraph_stats.ts +23 -4
- package/src/scripts/tool_registry.ts +24 -4
- package/src/scripts/trigger_coverage.ts +23 -4
- package/src/scripts/update_counts.ts +23 -4
- package/src/scripts/update_prices.ts +23 -1
- package/src/scripts/validate_agent_settings.ts +23 -4
- package/src/scripts/validate_decision_engine.ts +23 -4
- package/src/scripts/validate_discovery_manifest.ts +23 -4
- package/src/scripts/validate_frontmatter.ts +23 -2
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +24 -4
- package/src/scripts/validate_telegraph_carveouts.ts +23 -4
- package/src/scripts/verify_before_complete_hook.ts +24 -3
- package/src/scripts/verify_physical_move.ts +23 -4
- package/src/scripts/wrapper_freshness_hook.ts +107 -8
- package/tests/fixtures/hooks/README.md +92 -0
- package/tests/fixtures/hooks/agent_error.json +7 -0
- package/tests/fixtures/hooks/post_tool_use.json +13 -0
- package/tests/fixtures/hooks/pre_compact.json +7 -0
- package/tests/fixtures/hooks/pre_tool_use.json +9 -0
- package/tests/fixtures/hooks/session_end.json +6 -0
- package/tests/fixtures/hooks/session_start.json +6 -0
- package/tests/fixtures/hooks/stop.json +6 -0
- package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 113
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-07-08
|
|
5
|
+
decision: ci-native-release-label-trigger
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: road-to-ci-native-release · Phase 1
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ADR-113 — CI-native release path, triggered by a `release` label on a merged PR
|
|
12
|
+
|
|
13
|
+
## Status
|
|
14
|
+
|
|
15
|
+
**Accepted** · 2026-07-08.
|
|
16
|
+
|
|
17
|
+
## Context
|
|
18
|
+
|
|
19
|
+
`task release` (`src/scripts/release.ts`) is a fully interactive, local
|
|
20
|
+
9-step pipeline: preflight → plan → confirm → branch+bump → commit/push+PR →
|
|
21
|
+
wait for CI → merge → tag → GitHub Release. The back half is already CI
|
|
22
|
+
(`publish-npm.yml`, `cloud-release.yml`, `release-guard.yml` all trigger on
|
|
23
|
+
the pushed numeric tag), but a maintainer must run the front half from a
|
|
24
|
+
terminal. This ADR adds an unattended, CI-native entry point alongside
|
|
25
|
+
`task release` — not a replacement.
|
|
26
|
+
|
|
27
|
+
## Decision
|
|
28
|
+
|
|
29
|
+
1. **Trigger: a `release` / `release:major` / `release:minor` /
|
|
30
|
+
`release:patch` label on a PR, checked at merge time**
|
|
31
|
+
(`pull_request: types: [closed]`, job-guarded on `merged == true` +
|
|
32
|
+
an exact label match). `release` auto-detects the bump from
|
|
33
|
+
Conventional Commits since the last tag (same logic `task release`
|
|
34
|
+
uses); the `release:*` variants force the bump. `workflow_dispatch`
|
|
35
|
+
(with `bump` / `version` / `dry_run` / `resume` inputs) is the
|
|
36
|
+
manual/recovery entry for a release not tied to a PR merge.
|
|
37
|
+
|
|
38
|
+
2. **The numeric `X.Y.Z` tag stays the pipeline's *output*, never its
|
|
39
|
+
input.** `publish-npm.yml`, `cloud-release.yml`, and
|
|
40
|
+
`release-guard.yml` all trigger on `push: tags:
|
|
41
|
+
[0-9]+.[0-9]+.[0-9]+` and assume the tagged commit already carries
|
|
42
|
+
the bumped `package.json` / `marketplace.json` / regenerated
|
|
43
|
+
projections. A tag-shaped trigger (hand-pushed numeric tag, or a
|
|
44
|
+
`cut-*` intent tag) was considered and rejected — see Alternatives.
|
|
45
|
+
|
|
46
|
+
3. **One orchestration workflow (`release.yml`), not a prepare/finalize
|
|
47
|
+
split.** GitHub's `GITHUB_TOKEN` recursion guard means events caused
|
|
48
|
+
by the default token do not start new workflow runs (with narrow,
|
|
49
|
+
documented exceptions — see the bot-PR finding below). A
|
|
50
|
+
bot-auto-merged release PR would never trigger a separate
|
|
51
|
+
merge-listening "finalize" workflow. `release.yml` instead runs the
|
|
52
|
+
whole chain synchronously in one job, calling
|
|
53
|
+
`src/scripts/release.ts --ci` end-to-end — the exact same pipeline
|
|
54
|
+
`task release` runs locally, just non-interactively.
|
|
55
|
+
|
|
56
|
+
4. **`release.ts` gains a `--ci` mode, not a rewrite.** `--ci` changes
|
|
57
|
+
exactly three things relative to the existing interactive path:
|
|
58
|
+
- the `gh`-auth preflight probe (`gh api repos/{slug} --jq .id`
|
|
59
|
+
instead of `gh api user --jq .login` — the default `GITHUB_TOKEN`
|
|
60
|
+
is an installation token and `gh api user` returns 403 for it even
|
|
61
|
+
when perfectly valid);
|
|
62
|
+
- a `nothing_to_release_ci` short-circuit (empty commits + no
|
|
63
|
+
explicit bump/version override → exit 0) so firing the label path
|
|
64
|
+
twice in a row is a clean no-op, not a spurious empty release;
|
|
65
|
+
- explicit post-release dispatch of `release-guard.yml`,
|
|
66
|
+
`publish-npm.yml`, and `cloud-release.yml` via their `tag` input,
|
|
67
|
+
because a `GITHUB_TOKEN`-pushed tag does not fire their
|
|
68
|
+
`push: tags:` trigger either.
|
|
69
|
+
|
|
70
|
+
Every other code path (bump inference, changelog-era rendering, the
|
|
71
|
+
10-step `execute()` sequence, all idempotent-resume probes) is
|
|
72
|
+
shared, unmodified, between `task release` and `release.yml`.
|
|
73
|
+
|
|
74
|
+
5. **Token: `secrets.RELEASE_PR_TOKEN` with a `GITHUB_TOKEN` fallback.**
|
|
75
|
+
`release.yml` uses `${{ secrets.RELEASE_PR_TOKEN || secrets.GITHUB_TOKEN
|
|
76
|
+
}}` for checkout, git push, and `gh` auth. See the bot-PR-approval
|
|
77
|
+
finding below for why this matters and why the fallback is safe to
|
|
78
|
+
ship without the secret configured.
|
|
79
|
+
|
|
80
|
+
## Finding — bot-created PRs need a manual "Approve workflows to run" click (no PAT)
|
|
81
|
+
|
|
82
|
+
Verified against GitHub's own changelog and community docs (2026-06-11,
|
|
83
|
+
["Bot-created pull requests can run workflows if
|
|
84
|
+
approved"](https://github.blog/changelog/2026-06-11-bot-created-pull-requests-can-run-workflows-if-approved/)):
|
|
85
|
+
when a workflow uses the default `GITHUB_TOKEN` to open or update a PR,
|
|
86
|
+
the resulting `pull_request` events (`opened` / `synchronize` /
|
|
87
|
+
`reopened`) DO create workflow runs for other `pull_request`-triggered
|
|
88
|
+
workflows — but those runs sit in an **approval-required** state until a
|
|
89
|
+
repo collaborator with write access clicks **Approve workflows to run**
|
|
90
|
+
in the PR's merge box. This is a deliberate GitHub security control
|
|
91
|
+
(distinct from, but related to, the fork-first-time-contributor approval
|
|
92
|
+
gate), not a bug in this design.
|
|
93
|
+
|
|
94
|
+
This repo's branch-protection ruleset (verified live via `gh api
|
|
95
|
+
repos/event4u-app/agent-config/rulesets/17749383`) requires
|
|
96
|
+
**zero** approving reviews (`required_approving_review_count: 0`) and
|
|
97
|
+
exactly **one** required status check, `Sync + Generate Tools
|
|
98
|
+
Consistency` (from `consistency.yml`, `pull_request`-triggered). That
|
|
99
|
+
check does not run automatically on a `GITHUB_TOKEN`-opened release PR
|
|
100
|
+
without the one-time approval click — so without `RELEASE_PR_TOKEN`, a
|
|
101
|
+
release via the label path pauses at "waiting for checks" until a
|
|
102
|
+
maintainer approves the run once per release.
|
|
103
|
+
|
|
104
|
+
**Accepted as the default**, not worked around, because:
|
|
105
|
+
|
|
106
|
+
- It requires zero new secrets and zero change to repo-wide security
|
|
107
|
+
settings (disabling the org-wide first-time-contributor approval
|
|
108
|
+
setting would lower security posture for every fork/bot PR, not just
|
|
109
|
+
release PRs — out of proportion to this problem).
|
|
110
|
+
- A release is a production action; per this repo's own engineering
|
|
111
|
+
safety floor (`engineering-safety-floor` rule) and Hard-Floor stance
|
|
112
|
+
on deploys, a single human checkpoint before a release's own CI even
|
|
113
|
+
runs is arguably a feature, not friction.
|
|
114
|
+
- `RELEASE_PR_TOKEN` (a fine-grained PAT or GitHub App installation
|
|
115
|
+
token with `contents: write` + `pull-requests: write` on this repo)
|
|
116
|
+
removes the approval requirement entirely — documented as the
|
|
117
|
+
zero-friction upgrade path in `release.yml`'s header comment. Adding
|
|
118
|
+
it is a maintainer action, not part of this ADR.
|
|
119
|
+
|
|
120
|
+
## Verified facts (not assumed)
|
|
121
|
+
|
|
122
|
+
- Branch protection ruleset `main protection` (id `17749383`):
|
|
123
|
+
`required_approving_review_count: 0`; required check =
|
|
124
|
+
`Sync + Generate Tools Consistency`; `bypass_actors` includes a
|
|
125
|
+
repository-role bypass. No human-review gate blocks a bot merge once
|
|
126
|
+
checks are green.
|
|
127
|
+
- `consistency.yml` triggers on `pull_request` with path filters that
|
|
128
|
+
match every file a release PR touches (`package.json`,
|
|
129
|
+
`.claude-plugin/marketplace.json`, `CHANGELOG.md`, `dist/agent-src/**`,
|
|
130
|
+
`.augment/**`) — the required check fires (subject to the approval
|
|
131
|
+
gate above), it is not silently skipped.
|
|
132
|
+
- No `RELEASE_PR_TOKEN`-shaped secret exists in the repo today (`gh
|
|
133
|
+
secret list`) — the fallback path is the one that ships by default.
|
|
134
|
+
- `softprops/action-gh-release@v2`'s `overwrite_files` input defaults to
|
|
135
|
+
`true` — re-attaching the same-named cloud-release assets on a
|
|
136
|
+
dispatch-chain re-run is idempotent by construction, no extra guard
|
|
137
|
+
needed.
|
|
138
|
+
- `npm publish` hard-rejects re-publishing an existing version — added a
|
|
139
|
+
`npm view @event4u/agent-config@<tag> version` pre-check to
|
|
140
|
+
`publish-npm.yml` so a double-dispatch (native tag-push trigger racing
|
|
141
|
+
the explicit dispatch, when `RELEASE_PR_TOKEN` IS configured) is a
|
|
142
|
+
clean skip, not a red run.
|
|
143
|
+
|
|
144
|
+
## Consequences
|
|
145
|
+
|
|
146
|
+
- Releasing needs exactly one human action: label a PR `release` (or a
|
|
147
|
+
`release:*` variant) and merge it. Without `RELEASE_PR_TOKEN`, one
|
|
148
|
+
additional "Approve workflows to run" click is needed once per
|
|
149
|
+
release on the auto-created release PR.
|
|
150
|
+
- `task release` is unaffected — same script, same flags, same tests.
|
|
151
|
+
It remains the interactive/local path and the documented fallback if
|
|
152
|
+
the CI path misbehaves.
|
|
153
|
+
- Three existing workflows (`release-guard.yml`, `publish-npm.yml`)
|
|
154
|
+
gained a `workflow_dispatch` input / idempotency guard respectively;
|
|
155
|
+
`cloud-release.yml` needed no change (already idempotent).
|
|
156
|
+
- A future maintainer who configures `RELEASE_PR_TOKEN` gets a fully
|
|
157
|
+
unattended release with zero code changes required — the fallback
|
|
158
|
+
expression already prefers it.
|
|
159
|
+
|
|
160
|
+
## Alternatives considered
|
|
161
|
+
|
|
162
|
+
- **Hand-pushed numeric tag as the trigger.** Rejected: the tag-triggered
|
|
163
|
+
workflows require the tagged commit to already carry the bump: a
|
|
164
|
+
hand-pushed `X.Y.Z` on plain main fires them against the *un-bumped*
|
|
165
|
+
tree (red `release-guard`, wrong npm tarball), and the tag would then
|
|
166
|
+
have to be deleted and re-pushed onto the eventual bump-PR merge
|
|
167
|
+
commit — mutable tags are an anti-pattern (stale fetches, npm
|
|
168
|
+
provenance binds to the tag commit).
|
|
169
|
+
- **A `cut-*` intent tag** (`cut-X.Y.Z` / `cut-auto` / `cut-major` / …)
|
|
170
|
+
in a separate namespace from the numeric tags. Functionally workable
|
|
171
|
+
(does not collide with the publish/guard tag patterns), but the
|
|
172
|
+
release label keeps the intent visible on the PR itself — reviewable,
|
|
173
|
+
revocable pre-merge, no second git-tag vocabulary to teach.
|
|
174
|
+
- **`workflow_dispatch` as the sole/primary trigger**, no label. Loses
|
|
175
|
+
the "the intent to release lives on the PR, and is revocable until
|
|
176
|
+
merge" property that the label gives for free; kept as the
|
|
177
|
+
manual/recovery entry, not the primary path.
|
|
178
|
+
- **Prepare + finalize workflow split** (one workflow opens the release
|
|
179
|
+
PR, a second listens for its merge and finalizes). Needs a
|
|
180
|
+
`RELEASE_PR_TOKEN`-class token as a *hard* requirement — under plain
|
|
181
|
+
`GITHUB_TOKEN`, the bot-merged PR's `pull_request: closed` event is
|
|
182
|
+
the SAME kind of GITHUB_TOKEN-caused event subject to the same
|
|
183
|
+
approval/recursion nuance, and splitting the pipeline across two
|
|
184
|
+
workflow boundaries adds a second place idempotency can drift. The
|
|
185
|
+
single-workflow design collapses this into one synchronous run using
|
|
186
|
+
the already-battle-tested `execute()` sequence.
|
|
187
|
+
- **Disable the org-wide "require approval for first-time contributors"
|
|
188
|
+
setting** to remove the bot-PR approval gate without a PAT. Rejected:
|
|
189
|
+
it is an org-wide security posture change affecting every fork/bot PR
|
|
190
|
+
in the organization, not scoped to releases — disproportionate to
|
|
191
|
+
this problem; `RELEASE_PR_TOKEN` is the properly-scoped fix.
|
|
192
|
+
|
|
193
|
+
## References
|
|
194
|
+
|
|
195
|
+
- `.github/workflows/release.yml` — the orchestration workflow.
|
|
196
|
+
- `src/scripts/release.ts` — the shared pipeline (`--ci` mode).
|
|
197
|
+
- `docs/contracts/release-pr-gating.md`,
|
|
198
|
+
`docs/contracts/branch-protection-policy.md` — release-PR shape and
|
|
199
|
+
required-check contracts this design must keep satisfying.
|
|
200
|
+
- [GitHub Changelog — Bot-created pull requests can run workflows if
|
|
201
|
+
approved (2026-06-11)](https://github.blog/changelog/2026-06-11-bot-created-pull-requests-can-run-workflows-if-approved/)
|
package/docs/decisions/INDEX.md
CHANGED
|
@@ -114,6 +114,9 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
|
|
|
114
114
|
| [ADR-108](ADR-108-open-source-forever-no-commercial-tier.md) | Open Source Forever No Commercial Tier | accepted | 2026-06-24 | — |
|
|
115
115
|
| [ADR-109](ADR-109-subagent-v1-contract.md) | Subagent V1 Contract | accepted | 2026-07-04 | — |
|
|
116
116
|
| [ADR-110](ADR-110-discipline-profile-resolution-locus.md) | Discipline Profile Resolution Locus | accepted | 2026-07-07 | — |
|
|
117
|
+
| [ADR-111](ADR-111-canonical-glama-listing.md) | Canonical Glama Listing | accepted | 2026-07-07 | — |
|
|
118
|
+
| [ADR-112](ADR-112-stdio-lite-stays-read-only.md) | Stdio Lite Stays Read Only | accepted | 2026-07-07 | — |
|
|
119
|
+
| [ADR-113](ADR-113-ci-native-release-label-trigger.md) | Ci Native Release Label Trigger | accepted | 2026-07-08 | — |
|
|
117
120
|
| [ADR-200](ADR-200-python-to-typescript-migration.md) | Python To Typescript Migration | accepted | 2026-06-11 | — |
|
|
118
121
|
|
|
119
122
|
## Unnumbered (legacy)
|
|
@@ -34,7 +34,7 @@ the submission shape evolves; this file accumulates history.
|
|
|
34
34
|
|
|
35
35
|
| # | Registry | Submission shape | Status | PR / form URL | Date | Maintainer notes |
|
|
36
36
|
|---|---|---|---|---|---|---|
|
|
37
|
-
| 1 | `punkpeye/awesome-mcp-servers` | One-line entry under agent-tooling section; PR via `scripts/mcp_registry_submit.sh` | `
|
|
37
|
+
| 1 | `punkpeye/awesome-mcp-servers` | One-line entry under agent-tooling section; PR via `scripts/mcp_registry_submit.sh` | `submitted` | <https://github.com/punkpeye/awesome-mcp-servers/pull/9607> | 2026-07-07 | PR opened via the submit script (two script bugs fixed on the way: idempotent upstream remote, `--head OWNER:branch` format). Awaiting upstream review. |
|
|
38
38
|
| 2 | `mcp.so` | Directory form submission (web form, no programmatic API) | `pending` | — | — | Form URL: <https://mcp.so/>. Submission shape: same one-line entry, paste into the form's `description` field. |
|
|
39
39
|
| 3 | `mcpservers.org` | Directory form submission (web form, verify URL at submission time) | `pending` | — | — | Form URL: <https://mcpservers.org/>. Submission shape: one-line entry; check the site is live before posting. |
|
|
40
40
|
|
package/docs/getting-started.md
CHANGED
|
@@ -37,16 +37,18 @@ The suite is global-only (ADR-020) — refresh the global install and every
|
|
|
37
37
|
project sees the new skills, rules, and hooks at once, no per-repo bump:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
agent-config upgrade # fetch + install the latest globally (
|
|
41
|
-
agent-config refresh --global # idempotent re-install, same version
|
|
40
|
+
agent-config upgrade # fetch + install the latest globally (content + hooks)
|
|
41
|
+
agent-config refresh --global # idempotent re-install, same version
|
|
42
42
|
agent-config refresh --project # refresh a project's minimal surface — bridge
|
|
43
43
|
# marker, agents/overrides/, .gitignore (no wizard)
|
|
44
|
-
agent-config doctor # PATH,
|
|
44
|
+
agent-config doctor # PATH, hook wiring, duplicate surfaces, bridge presence
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
Claude Code is single-surface: the file projection carries content AND the
|
|
48
|
+
managed hooks in `~/.claude/settings.json` — there is no marketplace plugin
|
|
49
|
+
to keep in sync anymore. A leftover plugin from an older install is flagged
|
|
50
|
+
by `doctor` as `claude-plugin: duplicate surface` (fix:
|
|
51
|
+
`claude plugin uninstall agent-config@event4u-agent-config`).
|
|
50
52
|
|
|
51
53
|
## Project CLI — `./agent-config`
|
|
52
54
|
|
|
@@ -59,7 +59,7 @@ src/skills/<domain-skill>/data/
|
|
|
59
59
|
| Named owner + cadence | `manifest.json` keys — schema-validator-enforced |
|
|
60
60
|
| Staleness visibility | `upstream.last_checked` bumped on every refresh; quarterly default |
|
|
61
61
|
| Link integrity | `Docs URL` / source columns are plain URLs; `check-refs` + the quarterly refresh catch 404s |
|
|
62
|
-
| Eval lock | one `tests/
|
|
62
|
+
| Eval lock | one `tests/scripts/<domain>_corpus.test.ts` with representative queries |
|
|
63
63
|
| License | source obligations recorded in the owning skill (ATTRIBUTION pattern) |
|
|
64
64
|
|
|
65
65
|
## 4. Rejected domains — recorded, do not relitigate (Step 9.7)
|
|
@@ -73,7 +73,7 @@ split), the following are **rejected as corpora**:
|
|
|
73
73
|
| GTM playbooks | Same volatility; context dominates selection | Framework skills + discovery interviews |
|
|
74
74
|
| Founder-strategy verdicts | Verdicts are human decisions (strategy-safety-floor); no auditable selection rule | Framework skills + safety floors |
|
|
75
75
|
| Formula/spec lookup (WACC, WCAG criterion text, API param lists) | Mid-action **reference**, not pre-action grounding | `references/` docs / RAG |
|
|
76
|
-
| Lint-able conventions (no hardcoded hex, commit format) | Post-action **validation** | Rules / linters (`tokens.
|
|
76
|
+
| Lint-able conventions (no hardcoded hex, commit format) | Post-action **validation** | Rules / linters (`tokens.ts validate`, commit lints) |
|
|
77
77
|
| Anything ≤5 always-on lines | Grounding theater | A rule |
|
|
78
78
|
|
|
79
79
|
Conditional (deferred, evidence-gated — NOT rejected): finance *method
|
|
@@ -25,7 +25,7 @@ that prefer one file per type.
|
|
|
25
25
|
| Incident learnings | `agents/memory/incident-learnings.yml` | `agents/memory/incident-learnings/<hash>.yml` |
|
|
26
26
|
| Product rules | `agents/memory/product-rules.yml` | `agents/memory/product-rules/<hash>.yml` |
|
|
27
27
|
|
|
28
|
-
Choose one layout per type and stick with it. `scripts/check_memory.
|
|
28
|
+
Choose one layout per type and stick with it. `scripts/check_memory.ts`
|
|
29
29
|
warns if both exist for the same type.
|
|
30
30
|
|
|
31
31
|
## Shared frontmatter fields
|
|
@@ -59,7 +59,7 @@ for why a fourth `high` tier was rejected.
|
|
|
59
59
|
| `low` | Background — only surface on explicit full load | Skipped by query-matched retrieval; visible only via `/memory:load --type` full sweep |
|
|
60
60
|
|
|
61
61
|
**Tier-0 governance.**
|
|
62
|
-
`scripts/check_memory.
|
|
62
|
+
`scripts/check_memory.ts` enforces two soft guards on `critical` entries:
|
|
63
63
|
|
|
64
64
|
- **Critical-stale warning** — a `priority: critical` entry whose
|
|
65
65
|
`last_validated` is older than 90 days emits a `critical-stale` warning
|
|
@@ -119,7 +119,7 @@ templates for the full shape:
|
|
|
119
119
|
|
|
120
120
|
## Redaction rules (hard)
|
|
121
121
|
|
|
122
|
-
Enforced by `scripts/check_memory.
|
|
122
|
+
Enforced by `scripts/check_memory.ts`. Reject on match:
|
|
123
123
|
|
|
124
124
|
- **No secrets.** API keys, tokens, credentials, private URLs with
|
|
125
125
|
credentials, internal hostnames that expose infrastructure.
|
|
@@ -139,7 +139,7 @@ path if the guardrail is absent.
|
|
|
139
139
|
|
|
140
140
|
## Staleness
|
|
141
141
|
|
|
142
|
-
`check_memory.
|
|
142
|
+
`check_memory.ts` runs weekly (not per-PR). It reports entries where
|
|
143
143
|
`(today - last_validated) > review_after_days`. Stale entries stay
|
|
144
144
|
active — the report is informational, not a gate.
|
|
145
145
|
|
|
@@ -17,7 +17,7 @@ machine-managed, and orthogonal to `.agent-project-settings.yml`
|
|
|
17
17
|
schema_version: 1
|
|
18
18
|
agent_config_version: "2.x.y" # last package version that wrote the file
|
|
19
19
|
tools:
|
|
20
|
-
- name: claude-code # must match _VALID_TOOLS in scripts/install.
|
|
20
|
+
- name: claude-code # must match _VALID_TOOLS in scripts/install.ts
|
|
21
21
|
scope: global # one of: global, project
|
|
22
22
|
bridge_marker: ~/.claude/ # validate checks this path exists
|
|
23
23
|
installed_at: "2026-05-12"
|
|
@@ -32,7 +32,7 @@ tools:
|
|
|
32
32
|
| `schema_version` | machine | bumps on breaking schema changes |
|
|
33
33
|
| `agent_config_version` | machine | last writer's package version; `validate` flags drift |
|
|
34
34
|
| `tools[]` | machine | append-on-init order preserved (not alphabetised) |
|
|
35
|
-
| `tools[].name` | machine | one of the 17 valid IDs in `scripts/install.
|
|
35
|
+
| `tools[].name` | machine | one of the 17 valid IDs in `scripts/install.ts` |
|
|
36
36
|
| `tools[].scope` | machine | `global` (user-home) or `project` (workspace bridge) |
|
|
37
37
|
| `tools[].bridge_marker` | machine | absolute / `~`-prefixed for global, repo-relative for project |
|
|
38
38
|
| `tools[].installed_at` | machine | ISO date; informational only |
|
|
@@ -51,7 +51,7 @@ npx @event4u/agent-config sync
|
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
`sync` reads `agents/installed-tools.lock`, checks every listed tool's
|
|
54
|
-
bridge marker, and replays `install.
|
|
54
|
+
bridge marker, and replays `install.ts --tools=<id>` for each missing
|
|
55
55
|
one. Tools whose marker is already present are skipped — `sync` is
|
|
56
56
|
idempotent and safe to re-run.
|
|
57
57
|
|
|
@@ -116,7 +116,7 @@ block (the only allowed German location).
|
|
|
116
116
|
## Generated `.md` — fix the generator, never the page
|
|
117
117
|
|
|
118
118
|
When a `.md` page is produced by a generator (e.g. `docs/value.md` from
|
|
119
|
-
`scripts/render_value_md.
|
|
119
|
+
`scripts/render_value_md.ts`, the catalogs from the index/catalog
|
|
120
120
|
generators), German lives in the **generator's source strings** or the
|
|
121
121
|
data it reads — fix it there so the page regenerates English. Hand-edits
|
|
122
122
|
to a generated page are overwritten on the next regen. If a generated
|
|
@@ -138,4 +138,4 @@ Two — and only two — escapes are allowed when a line must carry German:
|
|
|
138
138
|
|
|
139
139
|
The marker is line-scoped and auditable. Never scatter it through a
|
|
140
140
|
generated file to silence the linter — fix the generator instead. Both
|
|
141
|
-
escapes are recognized by `scripts/check_md_language.
|
|
141
|
+
escapes are recognized by `scripts/check_md_language.ts`.
|
|
@@ -9,7 +9,7 @@ project-local choices always win.
|
|
|
9
9
|
Referenced by `road-to-project-memory.md` Phase 0 and
|
|
10
10
|
`road-to-portable-dev-preferences.md`. Consumed by the centralized
|
|
11
11
|
settings loader at
|
|
12
|
-
[`scripts/_lib/agent_settings.
|
|
12
|
+
[`scripts/_lib/agent_settings.ts`](../../../src/scripts/_lib/agent_settings.ts),
|
|
13
13
|
the `/onboard` command, and any agent that edits `.agent-settings.yml`
|
|
14
14
|
on user request.
|
|
15
15
|
|
|
@@ -32,7 +32,7 @@ All three are YAML. Schemas:
|
|
|
32
32
|
- Developer (project-local): [`agent-settings.md`](../../templates/agent-settings.md).
|
|
33
33
|
- Team: [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml).
|
|
34
34
|
- User-global: six exact dotted paths — whitelist in
|
|
35
|
-
[`scripts/_lib/agent_settings.
|
|
35
|
+
[`scripts/_lib/agent_settings.ts`](../../../src/scripts/_lib/agent_settings.ts).
|
|
36
36
|
|
|
37
37
|
## Merge order
|
|
38
38
|
|
|
@@ -248,13 +248,13 @@ Any agent that writes `.agent-settings.yml` or
|
|
|
248
248
|
`.agent-project-settings.yml` on the user's behalf (including
|
|
249
249
|
`/onboard`, `/set-cost-profile`, and ad-hoc "change value X" requests)
|
|
250
250
|
MUST follow these rules. Initial file creation and legacy migration
|
|
251
|
-
are owned by `scripts/install.
|
|
251
|
+
are owned by `scripts/install.ts`; these rules govern every edit
|
|
252
252
|
after that.
|
|
253
253
|
|
|
254
254
|
The contract is **additive merge with user-line preservation** —
|
|
255
255
|
the user's file is the ground truth, the template only contributes
|
|
256
256
|
keys the user is missing. Round-trip parser and merger live in
|
|
257
|
-
[`scripts/sync_yaml_rt.
|
|
257
|
+
[`scripts/sync_yaml_rt.ts`](../../src/scripts/sync_yaml_rt.ts); the
|
|
258
258
|
supported YAML subset (block-mappings, scalars, lists, comments,
|
|
259
259
|
CRLF/LF) is documented in its module docstring. The stdlib-only
|
|
260
260
|
choice (vs. `ruamel.yaml`) and its revisit triggers are recorded in
|
|
@@ -4,21 +4,22 @@ How a skill or command reads engineering memory. Memory is entirely
|
|
|
4
4
|
**file-backed** (`agents/memory/`); there is no external backend.
|
|
5
5
|
|
|
6
6
|
Single entry point: the shared `retrieve(types, keys, limit)`
|
|
7
|
-
abstraction backed by `scripts/memory_lookup.
|
|
8
|
-
under `agents/memory/<type>/` and the
|
|
9
|
-
|
|
7
|
+
abstraction backed by `scripts/memory_lookup.ts` (TypeScript, run via
|
|
8
|
+
tsx). It reads curated YAML under `agents/memory/<type>/` and the
|
|
9
|
+
agent-written `agents/memory/intake/*.jsonl` signal log.
|
|
10
10
|
|
|
11
11
|
## The contract
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
from scripts.memory_lookup import retrieve as retrieve_file
|
|
13
|
+
Consumers reach it via the CLI (`agent-config memory:lookup`) or the
|
|
14
|
+
MCP `memory_lookup` tool — never by ad-hoc file reads:
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
```bash
|
|
17
|
+
agent-config memory:lookup \
|
|
18
|
+
--types ownership,historical-patterns \
|
|
19
|
+
--key "app/Http/Controllers/Billing/Checkout.php" \
|
|
20
|
+
--limit 3
|
|
21
|
+
# --key is repeatable; add --format json for the raw hits,
|
|
22
|
+
# --envelope v1 for the retrieval-contract envelope.
|
|
22
23
|
```
|
|
23
24
|
|
|
24
25
|
Every backend MUST return a list of `Hit` with:
|
|
@@ -43,14 +44,14 @@ intake (low-confidence tier); it just never reaches the team repo unpromoted.
|
|
|
43
44
|
|
|
44
45
|
## The status helper
|
|
45
46
|
|
|
46
|
-
`scripts/memory_status.
|
|
47
|
-
consumers — including the MCP `memory_status` tool and
|
|
48
|
-
envelope — read a stable shape:
|
|
47
|
+
`scripts/memory_status.ts` exports `status()`, reporting the (constant)
|
|
48
|
+
file backend so consumers — including the MCP `memory_status` tool and
|
|
49
|
+
the v1 health envelope — read a stable shape:
|
|
49
50
|
|
|
50
|
-
```
|
|
51
|
-
from
|
|
52
|
-
r = status()
|
|
53
|
-
|
|
51
|
+
```ts
|
|
52
|
+
import { status } from './memory_status.js';
|
|
53
|
+
const r = status(); // constant; file-backed, never raises
|
|
54
|
+
// r.status === 'file' && r.backend === 'file'
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
Contract guarantees:
|
|
@@ -64,6 +64,6 @@ source: package
|
|
|
64
64
|
|
|
65
65
|
## Linter enforcement
|
|
66
66
|
|
|
67
|
-
The skill linter (`scripts/skill_linter.
|
|
67
|
+
The skill linter (`scripts/skill_linter.ts`) warns on:
|
|
68
68
|
- **Bare-noun names** — single word without qualifier (e.g., `jira` instead of `jira-integration`)
|
|
69
69
|
- **Layer collisions** — same name used for both a rule and a skill
|
|
@@ -10,7 +10,7 @@ _Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` p
|
|
|
10
10
|
# Roadmap Progress Sync
|
|
11
11
|
|
|
12
12
|
> **Enforced by (defence in depth):**
|
|
13
|
-
> 1. [`scripts/roadmap_progress_hook.
|
|
13
|
+
> 1. [`scripts/roadmap_progress_hook.ts`](../../src/scripts/roadmap_progress_hook.ts)
|
|
14
14
|
> on Augment + Claude Code (`PostToolUse`) — auto-regen on write.
|
|
15
15
|
> 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
|
|
16
16
|
> blocks any commit whose staged set touches `agents/roadmaps/` or
|
|
@@ -44,7 +44,7 @@ without regenerating? The dashboard claims it does not exist. Marked
|
|
|
44
44
|
EVERY ACTIVE ROADMAP MUST CONTAIN AT LEAST ONE TRACKABLE CHECKBOX
|
|
45
45
|
(`- [ ]`) PER NON-INTRO PHASE. ROADMAPS WITHOUT EXECUTABLE STEPS
|
|
46
46
|
EITHER GET A CHECKLIST OR THE `status: draft` FLAG.
|
|
47
|
-
CI-ENFORCED: `scripts/check_roadmap_trackable.
|
|
47
|
+
CI-ENFORCED: `scripts/check_roadmap_trackable.ts` (CANNOT BE DEFERRED).
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
**Active roadmap =** any file in `agents/roadmaps/` (root, not
|
|
@@ -61,7 +61,7 @@ Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
|
|
|
61
61
|
`### P0 #1 — …`, or `## Block A` do **not** count — only the
|
|
62
62
|
canonical `Phase <id>` form parsed by the dashboard.
|
|
63
63
|
|
|
64
|
-
**CI backstop.** `scripts/check_roadmap_trackable.
|
|
64
|
+
**CI backstop.** `scripts/check_roadmap_trackable.ts` (package-shipped,
|
|
65
65
|
wire into the consumer's pre-commit / pre-push / Actions gate) fails
|
|
66
66
|
when an active roadmap has zero canonical `Phase` headings or when
|
|
67
67
|
any parsed phase has zero checkboxes. Last line of defence — real-time
|
|
@@ -103,7 +103,7 @@ skipped decision table.
|
|
|
103
103
|
|
|
104
104
|
```
|
|
105
105
|
A FILE THE AGENT DROPS INTO agents/roadmaps/ MUST EITHER
|
|
106
|
-
(a) PASS check_roadmap_trackable.
|
|
106
|
+
(a) PASS check_roadmap_trackable.ts AND LAND IN THE DASHBOARD, OR
|
|
107
107
|
(b) NOT BE IN agents/roadmaps/ AT ALL.
|
|
108
108
|
NO "DECISION MATRIX" / "DESIGN NOTE" SHORTCUT.
|
|
109
109
|
```
|
|
@@ -173,7 +173,7 @@ surface; the mechanics file is the lookup material.
|
|
|
173
173
|
## Copilot fallback
|
|
174
174
|
|
|
175
175
|
GitHub Copilot has no `PostToolUse` hook surface, so
|
|
176
|
-
`scripts/roadmap_progress_hook.
|
|
176
|
+
`scripts/roadmap_progress_hook.ts` cannot detect roadmap-file writes
|
|
177
177
|
structurally. The dashboard at `agents/roadmaps-progress.md` will
|
|
178
178
|
not regenerate on its own.
|
|
179
179
|
|
|
@@ -75,7 +75,7 @@ Referenced by `road-to-role-modes.md` Phase 1. Each contract is a
|
|
|
75
75
|
|
|
76
76
|
**Memory-write is the final field, not a nice-to-have.** Before the
|
|
77
77
|
mode exits, the agent MUST either emit an intake signal via
|
|
78
|
-
[`memory-access`](memory-access.md) (`scripts/memory_signal.
|
|
78
|
+
[`memory-access`](memory-access.md) (`scripts/memory_signal.ts`
|
|
79
79
|
append — one line, fire-and-forget) or draft a curated entry with
|
|
80
80
|
[`/memory-add incident-learnings`](../../commands/memory-add.md).
|
|
81
81
|
Pattern + consequence + guardrail, redacted. Skipping this field
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
How the agent-security self-audit linters
|
|
4
4
|
(`lint_hidden_unicode`, `lint_instruction_smuggling`,
|
|
5
5
|
`lint_mcp_config_security`, `lint_skill_frontmatter_safety` — shared lib
|
|
6
|
-
`src/scripts/_lib/security_lint.
|
|
6
|
+
`src/scripts/_lib/security_lint.ts`) avoid drowning in false positives **without**
|
|
7
7
|
a global allowlist.
|
|
8
8
|
|
|
9
9
|
## Why this exists
|
|
@@ -76,6 +76,6 @@ inside a `security-example` fence, and not covered by a matching pragma.
|
|
|
76
76
|
|
|
77
77
|
## See also
|
|
78
78
|
|
|
79
|
-
- `src/scripts/_lib/security_lint.
|
|
79
|
+
- `src/scripts/_lib/security_lint.ts` — the shared implementation.
|
|
80
80
|
- `road-to-security-pillar` P1.5 (archived roadmap) — the council-locked decision behind this convention.
|
|
81
81
|
- [`autonomous-execution`](../../../src/rules/autonomous-execution.md) — the allowlist-growth antipattern this convention avoids.
|
|
@@ -63,7 +63,7 @@ blocks — it does not hand a half-filled doc to the next stage.
|
|
|
63
63
|
### Stage 4 — Gate
|
|
64
64
|
|
|
65
65
|
- **Trigger:** proposal doc committed or staged.
|
|
66
|
-
- **Executor:** `scripts/check_proposal.
|
|
66
|
+
- **Executor:** `scripts/check_proposal.ts`.
|
|
67
67
|
- **Input:** proposal doc from Stage 3.
|
|
68
68
|
- **Output:** verdict recorded in the proposal doc section 9
|
|
69
69
|
(`pass | request changes | block`). Frontmatter `stage: gated`
|
|
@@ -113,7 +113,7 @@ evidence-disciplined context type:
|
|
|
113
113
|
|
|
114
114
|
- Hard bound: **≤ 150 lines** — a card is a thin distillation, never a mirror.
|
|
115
115
|
- **Mandatory** `links.authoritative` pointer (path or URL).
|
|
116
|
-
- Enforced by `check_knowledge_cards.
|
|
116
|
+
- Enforced by `check_knowledge_cards.ts` (pointer-resolution CI + size +
|
|
117
117
|
trust-tag + multi-evidence git-ancestry consistency; `--strict` adds a
|
|
118
118
|
content-compare). Durable content = negative facts + pointers; positive
|
|
119
119
|
structure is a per-line, last-verified hypothesis.
|
|
@@ -24,7 +24,7 @@ Every skill MUST have: `When to use`, `Procedure`, `Gotcha`, `Output format`, `D
|
|
|
24
24
|
## Frontmatter Contract
|
|
25
25
|
|
|
26
26
|
Every skill's YAML frontmatter MUST validate against `scripts/schemas/skill.schema.json`.
|
|
27
|
-
Violations are reported by `scripts/skill_linter.
|
|
27
|
+
Violations are reported by `scripts/skill_linter.ts` as `schema_<rule>` errors
|
|
28
28
|
and fail `./scripts-run src/scripts/validate_frontmatter` and the full CI pipeline.
|
|
29
29
|
|
|
30
30
|
### Omit fields equal to their schema default
|
|
@@ -39,7 +39,7 @@ A field that carries the schema `default` (e.g. `trust.level: core`,
|
|
|
39
39
|
`command.disable-model-invocation: true`) is redundant:
|
|
40
40
|
`validate_frontmatter.apply_schema_defaults` injects it transparently for
|
|
41
41
|
every consumer (validator, discovery manifest, drift checksum). Writing it
|
|
42
|
-
anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.
|
|
42
|
+
anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.ts` rejects
|
|
43
43
|
(wired into `task ci-fast`). To strip it across the tree, run
|
|
44
44
|
`./scripts-run src/scripts/migrate_frontmatter_defaults`. Background:
|
|
45
45
|
`road-to-abstraction-reduction.md` +
|
|
@@ -49,7 +49,7 @@ anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.py` rejects
|
|
|
49
49
|
> contract: artefacts that omit the field inherit whatever the default *is at
|
|
50
50
|
> read time*. Flipping a default value (e.g. `lifecycle: active → deprecated`)
|
|
51
51
|
> silently re-defaults every artefact that omits the field — so a default
|
|
52
|
-
> change must pair with a re-run of `migrate_frontmatter_defaults.
|
|
52
|
+
> change must pair with a re-run of `migrate_frontmatter_defaults.ts` and an
|
|
53
53
|
> explicit review of the affected artefacts.
|
|
54
54
|
|
|
55
55
|
## Description Triggering
|
|
@@ -106,7 +106,7 @@ blocks beyond the standard required sections:
|
|
|
106
106
|
| 3 | Proactive Triggers | `## When the agent should load this` | 3–5 concrete user-prompt patterns (paraphrases users actually type), not abstract categories. |
|
|
107
107
|
| 4 | Output Artifacts | `## Output` | 1–4 named artifacts with shape (file path, table, markdown structure) — orchestrator-citable identifier each. |
|
|
108
108
|
|
|
109
|
-
**Forward-only.** `scripts/skill_linter.
|
|
109
|
+
**Forward-only.** `scripts/skill_linter.ts` enforces these blocks for
|
|
110
110
|
`tier: senior` skills only; mid-tier and untiered skills skip the
|
|
111
111
|
check. No retrofit pass on existing Wing-1 skills.
|
|
112
112
|
|
|
@@ -117,7 +117,7 @@ bad pattern pairs, and the WHEN-NOT routing peer rules live in
|
|
|
117
117
|
|
|
118
118
|
## Structural Malice Floor
|
|
119
119
|
|
|
120
|
-
`scripts/skill_linter.
|
|
120
|
+
`scripts/skill_linter.ts` runs five regex patterns against every
|
|
121
121
|
skill / rule / command body — credential exfiltration, remote
|
|
122
122
|
execution, force-push to a protected ref, world-readable secret
|
|
123
123
|
files, and shell-injection in subprocess calls. A match emits
|
|
@@ -61,7 +61,7 @@ invocation.
|
|
|
61
61
|
|
|
62
62
|
## Enforcement
|
|
63
63
|
|
|
64
|
-
`scripts/check_portability.
|
|
64
|
+
`scripts/check_portability.ts` scans `.augment/`, `.agent-src.uncondensed/`,
|
|
65
65
|
and the package repo's root `AGENTS.md` + `.github/copilot-instructions.md`
|
|
66
66
|
for forbidden identifiers, for any `task <name>` invocation inside
|
|
67
67
|
artefact files, and for direct script invocations that bypass the
|
package/docs/installation.md
CHANGED
|
@@ -413,25 +413,24 @@ This is additional to project-installed mode, not a replacement.
|
|
|
413
413
|
auggie plugin install agent-config@event4u-agent-config
|
|
414
414
|
```
|
|
415
415
|
|
|
416
|
-
### Claude Code
|
|
416
|
+
### Claude Code — plugin deprecated (single-surface model)
|
|
417
417
|
|
|
418
|
-
|
|
418
|
+
**Do not install the marketplace plugin for Claude Code.** The npx/npm
|
|
419
|
+
global install (`npx -y @event4u/agent-config init`) is the single supported
|
|
420
|
+
surface: it deploys skills/commands/rules to `~/.claude/` **and** registers
|
|
421
|
+
the deterministic hooks in a managed `~/.claude/settings.json` block. The
|
|
422
|
+
plugin would only duplicate every skill/command listing while its git-SHA
|
|
423
|
+
snapshot silently lags each release.
|
|
419
424
|
|
|
420
|
-
|
|
421
|
-
# From your shell (CLI)
|
|
422
|
-
claude plugin install agent-config@event4u-agent-config
|
|
423
|
-
```
|
|
425
|
+
Already have the plugin from an earlier install?
|
|
424
426
|
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
/plugin marketplace add event4u-app/agent-config
|
|
428
|
-
/plugin install agent-config@event4u-agent-config
|
|
427
|
+
```bash
|
|
428
|
+
claude plugin uninstall agent-config@event4u-agent-config
|
|
429
429
|
```
|
|
430
430
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
`.claude/skills/` — no separate ZIP download.
|
|
431
|
+
Hooks keep firing after removal (they live in `settings.json`, not the
|
|
432
|
+
plugin); `agent-config doctor` verifies via the `hook-wiring` check and
|
|
433
|
+
flags a leftover plugin as `claude-plugin: duplicate surface`.
|
|
435
434
|
|
|
436
435
|
### Copilot CLI
|
|
437
436
|
|