@jaguilar87/gaia 5.0.0-rc.2
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 +33 -0
- package/.claude-plugin/plugin.json +26 -0
- package/ARCHITECTURE.md +335 -0
- package/CHANGELOG.md +1298 -0
- package/CODE_OF_CONDUCT.md +11 -0
- package/CONTRIBUTING.md +146 -0
- package/INSTALL.md +436 -0
- package/LICENSE +21 -0
- package/README.md +222 -0
- package/SECURITY.md +47 -0
- package/agents/README.md +78 -0
- package/agents/cloud-troubleshooter.md +73 -0
- package/agents/developer.md +65 -0
- package/agents/gaia-operator.md +64 -0
- package/agents/gaia-orchestrator.md +111 -0
- package/agents/gaia-planner.md +53 -0
- package/agents/gaia-system.md +71 -0
- package/agents/gitops-operator.md +61 -0
- package/agents/terraform-architect.md +63 -0
- package/bin/README.md +106 -0
- package/bin/cli/__init__.py +1 -0
- package/bin/cli/approvals.py +740 -0
- package/bin/cli/cleanup.py +562 -0
- package/bin/cli/context.py +283 -0
- package/bin/cli/doctor.py +651 -0
- package/bin/cli/history.py +305 -0
- package/bin/cli/memory.py +483 -0
- package/bin/cli/metrics.py +1068 -0
- package/bin/cli/plans.py +515 -0
- package/bin/cli/status.py +302 -0
- package/bin/cli/update.py +382 -0
- package/bin/gaia +112 -0
- package/bin/gaia-cleanup.js +531 -0
- package/bin/gaia-doctor.js +635 -0
- package/bin/gaia-evidence +126 -0
- package/bin/gaia-history.js +251 -0
- package/bin/gaia-metrics.js +1278 -0
- package/bin/gaia-review.js +269 -0
- package/bin/gaia-scan +44 -0
- package/bin/gaia-scan.py +589 -0
- package/bin/gaia-skills-diagnose.js +929 -0
- package/bin/gaia-status.js +278 -0
- package/bin/gaia-uninstall.js +111 -0
- package/bin/gaia-update.js +919 -0
- package/bin/pre-publish-validate.js +610 -0
- package/bin/python-detect.js +60 -0
- package/bin/validate-sandbox.sh +601 -0
- package/commands/README.md +64 -0
- package/commands/gaia.md +37 -0
- package/commands/scan-project.md +67 -0
- package/config/README.md +71 -0
- package/config/cloud/aws.json +134 -0
- package/config/cloud/gcp.json +139 -0
- package/config/context-contracts.json +158 -0
- package/config/crons-schema.md +81 -0
- package/config/git_standards.json +72 -0
- package/config/surface-routing.json +417 -0
- package/config/universal-rules.json +102 -0
- package/dist/gaia-ops/.claude-plugin/plugin.json +24 -0
- package/dist/gaia-ops/README.md +80 -0
- package/dist/gaia-ops/agents/cloud-troubleshooter.md +73 -0
- package/dist/gaia-ops/agents/developer.md +65 -0
- package/dist/gaia-ops/agents/gaia-operator.md +64 -0
- package/dist/gaia-ops/agents/gaia-orchestrator.md +111 -0
- package/dist/gaia-ops/agents/gaia-planner.md +53 -0
- package/dist/gaia-ops/agents/gaia-system.md +71 -0
- package/dist/gaia-ops/agents/gitops-operator.md +61 -0
- package/dist/gaia-ops/agents/terraform-architect.md +63 -0
- package/dist/gaia-ops/commands/gaia.md +37 -0
- package/dist/gaia-ops/config/README.md +71 -0
- package/dist/gaia-ops/config/cloud/aws.json +134 -0
- package/dist/gaia-ops/config/cloud/gcp.json +139 -0
- package/dist/gaia-ops/config/context-contracts.json +158 -0
- package/dist/gaia-ops/config/crons-schema.md +81 -0
- package/dist/gaia-ops/config/git_standards.json +72 -0
- package/dist/gaia-ops/config/surface-routing.json +417 -0
- package/dist/gaia-ops/config/universal-rules.json +102 -0
- package/dist/gaia-ops/hooks/adapters/__init__.py +52 -0
- package/dist/gaia-ops/hooks/adapters/base.py +219 -0
- package/dist/gaia-ops/hooks/adapters/channel.py +17 -0
- package/dist/gaia-ops/hooks/adapters/claude_code.py +1890 -0
- package/dist/gaia-ops/hooks/adapters/types.py +194 -0
- package/dist/gaia-ops/hooks/adapters/utils.py +25 -0
- package/dist/gaia-ops/hooks/hooks.json +192 -0
- package/dist/gaia-ops/hooks/modules/__init__.py +15 -0
- package/dist/gaia-ops/hooks/modules/agents/__init__.py +29 -0
- package/dist/gaia-ops/hooks/modules/agents/contract_validator.py +647 -0
- package/dist/gaia-ops/hooks/modules/agents/response_contract.py +496 -0
- package/dist/gaia-ops/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/dist/gaia-ops/hooks/modules/agents/state_tracker.py +267 -0
- package/dist/gaia-ops/hooks/modules/agents/task_info_builder.py +74 -0
- package/dist/gaia-ops/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/dist/gaia-ops/hooks/modules/agents/transcript_reader.py +152 -0
- package/dist/gaia-ops/hooks/modules/audit/__init__.py +28 -0
- package/dist/gaia-ops/hooks/modules/audit/event_detector.py +168 -0
- package/dist/gaia-ops/hooks/modules/audit/logger.py +131 -0
- package/dist/gaia-ops/hooks/modules/audit/metrics.py +134 -0
- package/dist/gaia-ops/hooks/modules/audit/workflow_auditor.py +611 -0
- package/dist/gaia-ops/hooks/modules/audit/workflow_recorder.py +296 -0
- package/dist/gaia-ops/hooks/modules/context/__init__.py +11 -0
- package/dist/gaia-ops/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/dist/gaia-ops/hooks/modules/context/anchor_tracker.py +317 -0
- package/dist/gaia-ops/hooks/modules/context/compact_context_builder.py +218 -0
- package/dist/gaia-ops/hooks/modules/context/context_freshness.py +145 -0
- package/dist/gaia-ops/hooks/modules/context/context_injector.py +558 -0
- package/dist/gaia-ops/hooks/modules/context/context_writer.py +530 -0
- package/dist/gaia-ops/hooks/modules/context/contracts_loader.py +161 -0
- package/dist/gaia-ops/hooks/modules/core/__init__.py +40 -0
- package/dist/gaia-ops/hooks/modules/core/hook_entry.py +78 -0
- package/dist/gaia-ops/hooks/modules/core/paths.py +160 -0
- package/dist/gaia-ops/hooks/modules/core/plugin_mode.py +149 -0
- package/dist/gaia-ops/hooks/modules/core/plugin_setup.py +577 -0
- package/dist/gaia-ops/hooks/modules/core/state.py +179 -0
- package/dist/gaia-ops/hooks/modules/core/stdin.py +24 -0
- package/dist/gaia-ops/hooks/modules/events/__init__.py +1 -0
- package/dist/gaia-ops/hooks/modules/events/event_writer.py +210 -0
- package/dist/gaia-ops/hooks/modules/memory/__init__.py +8 -0
- package/dist/gaia-ops/hooks/modules/memory/episode_writer.py +216 -0
- package/dist/gaia-ops/hooks/modules/orchestrator/__init__.py +1 -0
- package/dist/gaia-ops/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/dist/gaia-ops/hooks/modules/scanning/__init__.py +8 -0
- package/dist/gaia-ops/hooks/modules/scanning/scan_trigger.py +84 -0
- package/dist/gaia-ops/hooks/modules/security/__init__.py +120 -0
- package/dist/gaia-ops/hooks/modules/security/approval_cleanup.py +87 -0
- package/dist/gaia-ops/hooks/modules/security/approval_constants.py +23 -0
- package/dist/gaia-ops/hooks/modules/security/approval_grants.py +1638 -0
- package/dist/gaia-ops/hooks/modules/security/approval_messages.py +71 -0
- package/dist/gaia-ops/hooks/modules/security/approval_scopes.py +222 -0
- package/dist/gaia-ops/hooks/modules/security/blocked_commands.py +595 -0
- package/dist/gaia-ops/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/dist/gaia-ops/hooks/modules/security/command_semantics.py +181 -0
- package/dist/gaia-ops/hooks/modules/security/composition_rules.py +547 -0
- package/dist/gaia-ops/hooks/modules/security/flag_classifiers.py +873 -0
- package/dist/gaia-ops/hooks/modules/security/gitops_validator.py +179 -0
- package/dist/gaia-ops/hooks/modules/security/mutative_verbs.py +1131 -0
- package/dist/gaia-ops/hooks/modules/security/network_hosts.py +481 -0
- package/dist/gaia-ops/hooks/modules/security/prompt_validator.py +40 -0
- package/dist/gaia-ops/hooks/modules/security/shell_unwrapper.py +165 -0
- package/dist/gaia-ops/hooks/modules/security/tiers.py +196 -0
- package/dist/gaia-ops/hooks/modules/session/__init__.py +10 -0
- package/dist/gaia-ops/hooks/modules/session/pending_scanner.py +174 -0
- package/dist/gaia-ops/hooks/modules/session/session_context_writer.py +100 -0
- package/dist/gaia-ops/hooks/modules/session/session_event_injector.py +160 -0
- package/dist/gaia-ops/hooks/modules/session/session_manager.py +31 -0
- package/dist/gaia-ops/hooks/modules/session/session_registry.py +333 -0
- package/dist/gaia-ops/hooks/modules/tools/__init__.py +29 -0
- package/dist/gaia-ops/hooks/modules/tools/bash_validator.py +1008 -0
- package/dist/gaia-ops/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/dist/gaia-ops/hooks/modules/tools/hook_response.py +55 -0
- package/dist/gaia-ops/hooks/modules/tools/shell_parser.py +227 -0
- package/dist/gaia-ops/hooks/modules/tools/stage_decomposer.py +315 -0
- package/dist/gaia-ops/hooks/modules/tools/task_validator.py +294 -0
- package/dist/gaia-ops/hooks/modules/validation/__init__.py +23 -0
- package/dist/gaia-ops/hooks/modules/validation/commit_validator.py +380 -0
- package/dist/gaia-ops/hooks/post_compact.py +43 -0
- package/dist/gaia-ops/hooks/post_tool_use.py +54 -0
- package/dist/gaia-ops/hooks/pre_compact.py +60 -0
- package/dist/gaia-ops/hooks/pre_tool_use.py +413 -0
- package/dist/gaia-ops/hooks/session_end_hook.py +77 -0
- package/dist/gaia-ops/hooks/session_start.py +81 -0
- package/dist/gaia-ops/hooks/stop_hook.py +70 -0
- package/dist/gaia-ops/hooks/subagent_start.py +71 -0
- package/dist/gaia-ops/hooks/subagent_stop.py +295 -0
- package/dist/gaia-ops/hooks/task_completed.py +70 -0
- package/dist/gaia-ops/hooks/user_prompt_submit.py +246 -0
- package/dist/gaia-ops/settings.json +72 -0
- package/dist/gaia-ops/skills/README.md +158 -0
- package/dist/gaia-ops/skills/agent-creation/SKILL.md +87 -0
- package/dist/gaia-ops/skills/agent-creation/examples.md +170 -0
- package/dist/gaia-ops/skills/agent-creation/reference.md +191 -0
- package/dist/gaia-ops/skills/agent-protocol/SKILL.md +93 -0
- package/dist/gaia-ops/skills/agent-protocol/examples.md +223 -0
- package/dist/gaia-ops/skills/agent-response/SKILL.md +69 -0
- package/dist/gaia-ops/skills/agentic-loop/SKILL.md +80 -0
- package/dist/gaia-ops/skills/agentic-loop/reference.md +378 -0
- package/dist/gaia-ops/skills/blog-writing/SKILL.md +98 -0
- package/dist/gaia-ops/skills/blog-writing/reference.md +130 -0
- package/dist/gaia-ops/skills/brief-spec/SKILL.md +185 -0
- package/dist/gaia-ops/skills/command-execution/SKILL.md +64 -0
- package/dist/gaia-ops/skills/command-execution/reference.md +83 -0
- package/dist/gaia-ops/skills/context-updater/SKILL.md +87 -0
- package/dist/gaia-ops/skills/context-updater/examples.md +71 -0
- package/dist/gaia-ops/skills/developer-patterns/SKILL.md +50 -0
- package/dist/gaia-ops/skills/developer-patterns/reference.md +112 -0
- package/dist/gaia-ops/skills/execution/SKILL.md +99 -0
- package/dist/gaia-ops/skills/fast-queries/SKILL.md +43 -0
- package/dist/gaia-ops/skills/gaia-compact/SKILL.md +74 -0
- package/dist/gaia-ops/skills/gaia-patterns/SKILL.md +108 -0
- package/dist/gaia-ops/skills/gaia-patterns/reference.md +395 -0
- package/dist/gaia-ops/skills/gaia-planner/SKILL.md +37 -0
- package/dist/gaia-ops/skills/gaia-planner/reference.md +107 -0
- package/dist/gaia-ops/skills/gaia-release/SKILL.md +85 -0
- package/dist/gaia-ops/skills/gaia-release/reference.md +92 -0
- package/dist/gaia-ops/skills/gaia-self-check/SKILL.md +114 -0
- package/dist/gaia-ops/skills/gaia-self-check/reference.md +453 -0
- package/dist/gaia-ops/skills/gaia-verify/SKILL.md +77 -0
- package/dist/gaia-ops/skills/gaia-verify/reference.md +80 -0
- package/dist/gaia-ops/skills/git-conventions/SKILL.md +47 -0
- package/dist/gaia-ops/skills/gitops-patterns/SKILL.md +60 -0
- package/dist/gaia-ops/skills/gitops-patterns/reference.md +183 -0
- package/dist/gaia-ops/skills/gmail-policy/SKILL.md +200 -0
- package/dist/gaia-ops/skills/gmail-policy/reference.md +150 -0
- package/dist/gaia-ops/skills/gmail-triage/SKILL.md +100 -0
- package/dist/gaia-ops/skills/gws-setup/SKILL.md +99 -0
- package/dist/gaia-ops/skills/gws-setup/reference.md +73 -0
- package/dist/gaia-ops/skills/investigation/SKILL.md +100 -0
- package/dist/gaia-ops/skills/memory-curation/SKILL.md +83 -0
- package/dist/gaia-ops/skills/memory-search/SKILL.md +88 -0
- package/dist/gaia-ops/skills/orchestrator-approval/SKILL.md +160 -0
- package/dist/gaia-ops/skills/orchestrator-approval/reference.md +174 -0
- package/dist/gaia-ops/skills/pending-approvals/SKILL.md +72 -0
- package/dist/gaia-ops/skills/pending-approvals/reference.md +214 -0
- package/dist/gaia-ops/skills/readme-writing/SKILL.md +71 -0
- package/dist/gaia-ops/skills/readme-writing/reference.md +188 -0
- package/dist/gaia-ops/skills/reference.md +135 -0
- package/dist/gaia-ops/skills/request-approval/SKILL.md +140 -0
- package/dist/gaia-ops/skills/request-approval/examples.md +140 -0
- package/dist/gaia-ops/skills/request-approval/reference.md +57 -0
- package/dist/gaia-ops/skills/schedule-task/SKILL.md +64 -0
- package/dist/gaia-ops/skills/schedule-task/reference.md +233 -0
- package/dist/gaia-ops/skills/security-tiers/SKILL.md +141 -0
- package/dist/gaia-ops/skills/security-tiers/destructive-commands-reference.md +623 -0
- package/dist/gaia-ops/skills/security-tiers/reference.md +39 -0
- package/dist/gaia-ops/skills/session-reflection/SKILL.md +69 -0
- package/dist/gaia-ops/skills/skill-creation/SKILL.md +92 -0
- package/dist/gaia-ops/skills/skill-creation/reference.md +29 -0
- package/dist/gaia-ops/skills/terraform-patterns/SKILL.md +89 -0
- package/dist/gaia-ops/skills/terraform-patterns/reference.md +93 -0
- package/dist/gaia-ops/tools/__init__.py +9 -0
- package/dist/gaia-ops/tools/agentic-loop/decide-status.py +210 -0
- package/dist/gaia-ops/tools/agentic-loop/parse-metric.py +106 -0
- package/dist/gaia-ops/tools/agentic-loop/record-iteration.py +221 -0
- package/dist/gaia-ops/tools/context/README.md +132 -0
- package/dist/gaia-ops/tools/context/__init__.py +42 -0
- package/dist/gaia-ops/tools/context/_paths.py +20 -0
- package/dist/gaia-ops/tools/context/context_provider.py +721 -0
- package/dist/gaia-ops/tools/context/context_section_reader.py +342 -0
- package/dist/gaia-ops/tools/context/deep_merge.py +159 -0
- package/dist/gaia-ops/tools/context/pending_updates.py +760 -0
- package/dist/gaia-ops/tools/context/surface_router.py +278 -0
- package/dist/gaia-ops/tools/fast-queries/README.md +65 -0
- package/dist/gaia-ops/tools/fast-queries/__init__.py +30 -0
- package/dist/gaia-ops/tools/fast-queries/appservices/quicktriage_devops_developer.sh +75 -0
- package/dist/gaia-ops/tools/fast-queries/cloud/aws/quicktriage_aws_troubleshooter.sh +32 -0
- package/dist/gaia-ops/tools/fast-queries/cloud/gcp/quicktriage_gcp_troubleshooter.sh +88 -0
- package/dist/gaia-ops/tools/fast-queries/gitops/quicktriage_gitops_operator.sh +48 -0
- package/dist/gaia-ops/tools/fast-queries/run_triage.sh +59 -0
- package/dist/gaia-ops/tools/fast-queries/terraform/quicktriage_terraform_architect.sh +80 -0
- package/dist/gaia-ops/tools/gaia_simulator/__init__.py +33 -0
- package/dist/gaia-ops/tools/gaia_simulator/cli.py +354 -0
- package/dist/gaia-ops/tools/gaia_simulator/extractor.py +457 -0
- package/dist/gaia-ops/tools/gaia_simulator/reporter.py +258 -0
- package/dist/gaia-ops/tools/gaia_simulator/routing_simulator.py +334 -0
- package/dist/gaia-ops/tools/gaia_simulator/runner.py +539 -0
- package/dist/gaia-ops/tools/gaia_simulator/skills_mapper.py +264 -0
- package/dist/gaia-ops/tools/memory/README.md +0 -0
- package/dist/gaia-ops/tools/memory/__init__.py +20 -0
- package/dist/gaia-ops/tools/memory/backfill_fts5.py +107 -0
- package/dist/gaia-ops/tools/memory/conflict_detector.py +295 -0
- package/dist/gaia-ops/tools/memory/episodic.py +1210 -0
- package/dist/gaia-ops/tools/memory/git_invalidator.py +262 -0
- package/dist/gaia-ops/tools/memory/paths.py +102 -0
- package/dist/gaia-ops/tools/memory/scoring.py +193 -0
- package/dist/gaia-ops/tools/memory/search_store.py +375 -0
- package/dist/gaia-ops/tools/persist_transcript_analysis.py +85 -0
- package/dist/gaia-ops/tools/review/__init__.py +1 -0
- package/dist/gaia-ops/tools/review/review_engine.py +157 -0
- package/dist/gaia-ops/tools/scan/__init__.py +35 -0
- package/dist/gaia-ops/tools/scan/config.py +247 -0
- package/dist/gaia-ops/tools/scan/merge.py +212 -0
- package/dist/gaia-ops/tools/scan/orchestrator.py +549 -0
- package/dist/gaia-ops/tools/scan/registry.py +127 -0
- package/dist/gaia-ops/tools/scan/scanners/__init__.py +18 -0
- package/dist/gaia-ops/tools/scan/scanners/base.py +137 -0
- package/dist/gaia-ops/tools/scan/scanners/environment.py +349 -0
- package/dist/gaia-ops/tools/scan/scanners/git.py +570 -0
- package/dist/gaia-ops/tools/scan/scanners/infrastructure.py +875 -0
- package/dist/gaia-ops/tools/scan/scanners/orchestration.py +600 -0
- package/dist/gaia-ops/tools/scan/scanners/stack.py +1085 -0
- package/dist/gaia-ops/tools/scan/scanners/tools.py +260 -0
- package/dist/gaia-ops/tools/scan/setup.py +686 -0
- package/dist/gaia-ops/tools/scan/tests/__init__.py +1 -0
- package/dist/gaia-ops/tools/scan/tests/conftest.py +796 -0
- package/dist/gaia-ops/tools/scan/tests/test_environment.py +323 -0
- package/dist/gaia-ops/tools/scan/tests/test_git.py +419 -0
- package/dist/gaia-ops/tools/scan/tests/test_infrastructure.py +382 -0
- package/dist/gaia-ops/tools/scan/tests/test_integration.py +920 -0
- package/dist/gaia-ops/tools/scan/tests/test_merge.py +269 -0
- package/dist/gaia-ops/tools/scan/tests/test_orchestration.py +304 -0
- package/dist/gaia-ops/tools/scan/tests/test_stack.py +604 -0
- package/dist/gaia-ops/tools/scan/tests/test_tools.py +349 -0
- package/dist/gaia-ops/tools/scan/ui.py +624 -0
- package/dist/gaia-ops/tools/scan/verify.py +270 -0
- package/dist/gaia-ops/tools/scan/walk.py +118 -0
- package/dist/gaia-ops/tools/scan/workspace.py +85 -0
- package/dist/gaia-ops/tools/validation/README.md +244 -0
- package/dist/gaia-ops/tools/validation/__init__.py +17 -0
- package/dist/gaia-ops/tools/validation/approval_gate.py +321 -0
- package/dist/gaia-ops/tools/validation/validate_skills.py +189 -0
- package/dist/gaia-security/.claude-plugin/plugin.json +24 -0
- package/dist/gaia-security/README.md +90 -0
- package/dist/gaia-security/config/universal-rules.json +102 -0
- package/dist/gaia-security/hooks/adapters/__init__.py +52 -0
- package/dist/gaia-security/hooks/adapters/base.py +219 -0
- package/dist/gaia-security/hooks/adapters/channel.py +17 -0
- package/dist/gaia-security/hooks/adapters/claude_code.py +1890 -0
- package/dist/gaia-security/hooks/adapters/types.py +194 -0
- package/dist/gaia-security/hooks/adapters/utils.py +25 -0
- package/dist/gaia-security/hooks/hooks.json +113 -0
- package/dist/gaia-security/hooks/modules/__init__.py +15 -0
- package/dist/gaia-security/hooks/modules/agents/__init__.py +29 -0
- package/dist/gaia-security/hooks/modules/agents/contract_validator.py +647 -0
- package/dist/gaia-security/hooks/modules/agents/response_contract.py +496 -0
- package/dist/gaia-security/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/dist/gaia-security/hooks/modules/agents/state_tracker.py +267 -0
- package/dist/gaia-security/hooks/modules/agents/task_info_builder.py +74 -0
- package/dist/gaia-security/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/dist/gaia-security/hooks/modules/agents/transcript_reader.py +152 -0
- package/dist/gaia-security/hooks/modules/audit/__init__.py +28 -0
- package/dist/gaia-security/hooks/modules/audit/event_detector.py +168 -0
- package/dist/gaia-security/hooks/modules/audit/logger.py +131 -0
- package/dist/gaia-security/hooks/modules/audit/metrics.py +134 -0
- package/dist/gaia-security/hooks/modules/audit/workflow_auditor.py +611 -0
- package/dist/gaia-security/hooks/modules/audit/workflow_recorder.py +296 -0
- package/dist/gaia-security/hooks/modules/context/__init__.py +11 -0
- package/dist/gaia-security/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/dist/gaia-security/hooks/modules/context/anchor_tracker.py +317 -0
- package/dist/gaia-security/hooks/modules/context/compact_context_builder.py +218 -0
- package/dist/gaia-security/hooks/modules/context/context_freshness.py +145 -0
- package/dist/gaia-security/hooks/modules/context/context_injector.py +558 -0
- package/dist/gaia-security/hooks/modules/context/context_writer.py +530 -0
- package/dist/gaia-security/hooks/modules/context/contracts_loader.py +161 -0
- package/dist/gaia-security/hooks/modules/core/__init__.py +40 -0
- package/dist/gaia-security/hooks/modules/core/hook_entry.py +78 -0
- package/dist/gaia-security/hooks/modules/core/paths.py +160 -0
- package/dist/gaia-security/hooks/modules/core/plugin_mode.py +149 -0
- package/dist/gaia-security/hooks/modules/core/plugin_setup.py +577 -0
- package/dist/gaia-security/hooks/modules/core/state.py +179 -0
- package/dist/gaia-security/hooks/modules/core/stdin.py +24 -0
- package/dist/gaia-security/hooks/modules/events/__init__.py +1 -0
- package/dist/gaia-security/hooks/modules/events/event_writer.py +210 -0
- package/dist/gaia-security/hooks/modules/memory/__init__.py +8 -0
- package/dist/gaia-security/hooks/modules/memory/episode_writer.py +216 -0
- package/dist/gaia-security/hooks/modules/orchestrator/__init__.py +1 -0
- package/dist/gaia-security/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/dist/gaia-security/hooks/modules/scanning/__init__.py +8 -0
- package/dist/gaia-security/hooks/modules/scanning/scan_trigger.py +84 -0
- package/dist/gaia-security/hooks/modules/security/__init__.py +120 -0
- package/dist/gaia-security/hooks/modules/security/approval_cleanup.py +87 -0
- package/dist/gaia-security/hooks/modules/security/approval_constants.py +23 -0
- package/dist/gaia-security/hooks/modules/security/approval_grants.py +1638 -0
- package/dist/gaia-security/hooks/modules/security/approval_messages.py +71 -0
- package/dist/gaia-security/hooks/modules/security/approval_scopes.py +222 -0
- package/dist/gaia-security/hooks/modules/security/blocked_commands.py +595 -0
- package/dist/gaia-security/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/dist/gaia-security/hooks/modules/security/command_semantics.py +181 -0
- package/dist/gaia-security/hooks/modules/security/composition_rules.py +547 -0
- package/dist/gaia-security/hooks/modules/security/flag_classifiers.py +873 -0
- package/dist/gaia-security/hooks/modules/security/gitops_validator.py +179 -0
- package/dist/gaia-security/hooks/modules/security/mutative_verbs.py +1131 -0
- package/dist/gaia-security/hooks/modules/security/network_hosts.py +481 -0
- package/dist/gaia-security/hooks/modules/security/prompt_validator.py +40 -0
- package/dist/gaia-security/hooks/modules/security/shell_unwrapper.py +165 -0
- package/dist/gaia-security/hooks/modules/security/tiers.py +196 -0
- package/dist/gaia-security/hooks/modules/session/__init__.py +10 -0
- package/dist/gaia-security/hooks/modules/session/pending_scanner.py +174 -0
- package/dist/gaia-security/hooks/modules/session/session_context_writer.py +100 -0
- package/dist/gaia-security/hooks/modules/session/session_event_injector.py +160 -0
- package/dist/gaia-security/hooks/modules/session/session_manager.py +31 -0
- package/dist/gaia-security/hooks/modules/session/session_registry.py +333 -0
- package/dist/gaia-security/hooks/modules/tools/__init__.py +29 -0
- package/dist/gaia-security/hooks/modules/tools/bash_validator.py +1008 -0
- package/dist/gaia-security/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/dist/gaia-security/hooks/modules/tools/hook_response.py +55 -0
- package/dist/gaia-security/hooks/modules/tools/shell_parser.py +227 -0
- package/dist/gaia-security/hooks/modules/tools/stage_decomposer.py +315 -0
- package/dist/gaia-security/hooks/modules/tools/task_validator.py +294 -0
- package/dist/gaia-security/hooks/modules/validation/__init__.py +23 -0
- package/dist/gaia-security/hooks/modules/validation/commit_validator.py +380 -0
- package/dist/gaia-security/hooks/post_tool_use.py +54 -0
- package/dist/gaia-security/hooks/pre_tool_use.py +413 -0
- package/dist/gaia-security/hooks/session_end_hook.py +77 -0
- package/dist/gaia-security/hooks/session_start.py +81 -0
- package/dist/gaia-security/hooks/stop_hook.py +70 -0
- package/dist/gaia-security/hooks/user_prompt_submit.py +246 -0
- package/dist/gaia-security/settings.json +58 -0
- package/git-hooks/commit-msg +41 -0
- package/hooks/README.md +100 -0
- package/hooks/adapters/__init__.py +52 -0
- package/hooks/adapters/base.py +219 -0
- package/hooks/adapters/channel.py +17 -0
- package/hooks/adapters/claude_code.py +1890 -0
- package/hooks/adapters/types.py +194 -0
- package/hooks/adapters/utils.py +25 -0
- package/hooks/elicitation_result.py +179 -0
- package/hooks/hooks.json +84 -0
- package/hooks/modules/README.md +189 -0
- package/hooks/modules/__init__.py +15 -0
- package/hooks/modules/agents/__init__.py +29 -0
- package/hooks/modules/agents/contract_validator.py +647 -0
- package/hooks/modules/agents/response_contract.py +496 -0
- package/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/hooks/modules/agents/state_tracker.py +267 -0
- package/hooks/modules/agents/task_info_builder.py +74 -0
- package/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/hooks/modules/agents/transcript_reader.py +152 -0
- package/hooks/modules/audit/__init__.py +28 -0
- package/hooks/modules/audit/event_detector.py +168 -0
- package/hooks/modules/audit/logger.py +131 -0
- package/hooks/modules/audit/metrics.py +134 -0
- package/hooks/modules/audit/workflow_auditor.py +611 -0
- package/hooks/modules/audit/workflow_recorder.py +296 -0
- package/hooks/modules/context/__init__.py +11 -0
- package/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/hooks/modules/context/anchor_tracker.py +317 -0
- package/hooks/modules/context/compact_context_builder.py +218 -0
- package/hooks/modules/context/context_freshness.py +145 -0
- package/hooks/modules/context/context_injector.py +558 -0
- package/hooks/modules/context/context_writer.py +530 -0
- package/hooks/modules/context/contracts_loader.py +161 -0
- package/hooks/modules/core/__init__.py +40 -0
- package/hooks/modules/core/hook_entry.py +78 -0
- package/hooks/modules/core/paths.py +160 -0
- package/hooks/modules/core/plugin_mode.py +149 -0
- package/hooks/modules/core/plugin_setup.py +577 -0
- package/hooks/modules/core/state.py +179 -0
- package/hooks/modules/core/stdin.py +24 -0
- package/hooks/modules/events/__init__.py +1 -0
- package/hooks/modules/events/event_writer.py +210 -0
- package/hooks/modules/evidence/__init__.py +34 -0
- package/hooks/modules/evidence/assertions.py +137 -0
- package/hooks/modules/evidence/index_writer.py +57 -0
- package/hooks/modules/evidence/loader.py +126 -0
- package/hooks/modules/evidence/runner.py +241 -0
- package/hooks/modules/memory/__init__.py +8 -0
- package/hooks/modules/memory/episode_writer.py +216 -0
- package/hooks/modules/orchestrator/__init__.py +1 -0
- package/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/hooks/modules/scanning/__init__.py +8 -0
- package/hooks/modules/scanning/scan_trigger.py +84 -0
- package/hooks/modules/security/__init__.py +120 -0
- package/hooks/modules/security/approval_cleanup.py +87 -0
- package/hooks/modules/security/approval_constants.py +23 -0
- package/hooks/modules/security/approval_grants.py +1638 -0
- package/hooks/modules/security/approval_messages.py +71 -0
- package/hooks/modules/security/approval_scopes.py +222 -0
- package/hooks/modules/security/blocked_commands.py +595 -0
- package/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/hooks/modules/security/command_semantics.py +181 -0
- package/hooks/modules/security/composition_rules.py +547 -0
- package/hooks/modules/security/flag_classifiers.py +873 -0
- package/hooks/modules/security/gitops_validator.py +179 -0
- package/hooks/modules/security/mutative_verbs.py +1131 -0
- package/hooks/modules/security/network_hosts.py +481 -0
- package/hooks/modules/security/prompt_validator.py +40 -0
- package/hooks/modules/security/shell_unwrapper.py +165 -0
- package/hooks/modules/security/tiers.py +196 -0
- package/hooks/modules/session/__init__.py +10 -0
- package/hooks/modules/session/pending_scanner.py +174 -0
- package/hooks/modules/session/session_context_writer.py +100 -0
- package/hooks/modules/session/session_event_injector.py +160 -0
- package/hooks/modules/session/session_manager.py +31 -0
- package/hooks/modules/session/session_registry.py +333 -0
- package/hooks/modules/tools/__init__.py +29 -0
- package/hooks/modules/tools/bash_validator.py +1008 -0
- package/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/hooks/modules/tools/hook_response.py +55 -0
- package/hooks/modules/tools/shell_parser.py +227 -0
- package/hooks/modules/tools/stage_decomposer.py +315 -0
- package/hooks/modules/tools/task_validator.py +294 -0
- package/hooks/modules/validation/__init__.py +23 -0
- package/hooks/modules/validation/commit_validator.py +380 -0
- package/hooks/post_compact.py +43 -0
- package/hooks/post_tool_use.py +54 -0
- package/hooks/pre_compact.py +60 -0
- package/hooks/pre_tool_use.py +413 -0
- package/hooks/session_end_hook.py +77 -0
- package/hooks/session_start.py +81 -0
- package/hooks/stop_hook.py +70 -0
- package/hooks/subagent_start.py +71 -0
- package/hooks/subagent_stop.py +295 -0
- package/hooks/task_completed.py +70 -0
- package/hooks/user_prompt_submit.py +246 -0
- package/index.js +83 -0
- package/package.json +103 -0
- package/pyproject.toml +32 -0
- package/skills/README.md +158 -0
- package/skills/agent-creation/SKILL.md +87 -0
- package/skills/agent-creation/examples.md +170 -0
- package/skills/agent-creation/reference.md +191 -0
- package/skills/agent-protocol/SKILL.md +93 -0
- package/skills/agent-protocol/examples.md +223 -0
- package/skills/agent-response/SKILL.md +69 -0
- package/skills/agentic-loop/SKILL.md +80 -0
- package/skills/agentic-loop/reference.md +378 -0
- package/skills/blog-writing/SKILL.md +98 -0
- package/skills/blog-writing/reference.md +130 -0
- package/skills/brief-spec/SKILL.md +185 -0
- package/skills/command-execution/SKILL.md +64 -0
- package/skills/command-execution/reference.md +83 -0
- package/skills/context-updater/SKILL.md +87 -0
- package/skills/context-updater/examples.md +71 -0
- package/skills/developer-patterns/SKILL.md +50 -0
- package/skills/developer-patterns/reference.md +112 -0
- package/skills/execution/SKILL.md +99 -0
- package/skills/fast-queries/SKILL.md +43 -0
- package/skills/gaia-compact/SKILL.md +74 -0
- package/skills/gaia-patterns/SKILL.md +108 -0
- package/skills/gaia-patterns/reference.md +395 -0
- package/skills/gaia-planner/SKILL.md +37 -0
- package/skills/gaia-planner/reference.md +107 -0
- package/skills/gaia-release/SKILL.md +85 -0
- package/skills/gaia-release/reference.md +92 -0
- package/skills/gaia-self-check/SKILL.md +114 -0
- package/skills/gaia-self-check/reference.md +453 -0
- package/skills/gaia-verify/SKILL.md +77 -0
- package/skills/gaia-verify/reference.md +80 -0
- package/skills/git-conventions/SKILL.md +47 -0
- package/skills/gitops-patterns/SKILL.md +60 -0
- package/skills/gitops-patterns/reference.md +183 -0
- package/skills/gmail-policy/SKILL.md +200 -0
- package/skills/gmail-policy/reference.md +150 -0
- package/skills/gmail-triage/SKILL.md +100 -0
- package/skills/gws-setup/SKILL.md +99 -0
- package/skills/gws-setup/reference.md +73 -0
- package/skills/investigation/SKILL.md +100 -0
- package/skills/memory-curation/SKILL.md +83 -0
- package/skills/memory-search/SKILL.md +88 -0
- package/skills/orchestrator-approval/SKILL.md +160 -0
- package/skills/orchestrator-approval/reference.md +174 -0
- package/skills/pending-approvals/SKILL.md +72 -0
- package/skills/pending-approvals/reference.md +214 -0
- package/skills/readme-writing/SKILL.md +71 -0
- package/skills/readme-writing/reference.md +188 -0
- package/skills/reference.md +135 -0
- package/skills/request-approval/SKILL.md +140 -0
- package/skills/request-approval/examples.md +140 -0
- package/skills/request-approval/reference.md +57 -0
- package/skills/schedule-task/SKILL.md +64 -0
- package/skills/schedule-task/reference.md +233 -0
- package/skills/security-tiers/SKILL.md +141 -0
- package/skills/security-tiers/destructive-commands-reference.md +623 -0
- package/skills/security-tiers/reference.md +39 -0
- package/skills/session-reflection/SKILL.md +69 -0
- package/skills/skill-creation/SKILL.md +92 -0
- package/skills/skill-creation/reference.md +29 -0
- package/skills/terraform-patterns/SKILL.md +89 -0
- package/skills/terraform-patterns/reference.md +93 -0
- package/templates/README.md +69 -0
- package/templates/managed-settings.template.json +43 -0
- package/tools/__init__.py +9 -0
- package/tools/agentic-loop/decide-status.py +210 -0
- package/tools/agentic-loop/parse-metric.py +106 -0
- package/tools/agentic-loop/record-iteration.py +221 -0
- package/tools/context/README.md +132 -0
- package/tools/context/__init__.py +42 -0
- package/tools/context/_paths.py +20 -0
- package/tools/context/context_provider.py +721 -0
- package/tools/context/context_section_reader.py +342 -0
- package/tools/context/deep_merge.py +159 -0
- package/tools/context/pending_updates.py +760 -0
- package/tools/context/surface_router.py +278 -0
- package/tools/fast-queries/README.md +65 -0
- package/tools/fast-queries/__init__.py +30 -0
- package/tools/fast-queries/appservices/quicktriage_devops_developer.sh +75 -0
- package/tools/fast-queries/cloud/aws/quicktriage_aws_troubleshooter.sh +32 -0
- package/tools/fast-queries/cloud/gcp/quicktriage_gcp_troubleshooter.sh +88 -0
- package/tools/fast-queries/gitops/quicktriage_gitops_operator.sh +48 -0
- package/tools/fast-queries/run_triage.sh +59 -0
- package/tools/fast-queries/terraform/quicktriage_terraform_architect.sh +80 -0
- package/tools/gaia_simulator/__init__.py +33 -0
- package/tools/gaia_simulator/cli.py +354 -0
- package/tools/gaia_simulator/extractor.py +457 -0
- package/tools/gaia_simulator/reporter.py +258 -0
- package/tools/gaia_simulator/routing_simulator.py +334 -0
- package/tools/gaia_simulator/runner.py +539 -0
- package/tools/gaia_simulator/skills_mapper.py +264 -0
- package/tools/memory/README.md +0 -0
- package/tools/memory/__init__.py +20 -0
- package/tools/memory/backfill_fts5.py +107 -0
- package/tools/memory/conflict_detector.py +295 -0
- package/tools/memory/episodic.py +1210 -0
- package/tools/memory/git_invalidator.py +262 -0
- package/tools/memory/paths.py +102 -0
- package/tools/memory/scoring.py +193 -0
- package/tools/memory/search_store.py +375 -0
- package/tools/persist_transcript_analysis.py +85 -0
- package/tools/review/__init__.py +1 -0
- package/tools/review/review_engine.py +157 -0
- package/tools/scan/__init__.py +35 -0
- package/tools/scan/config.py +247 -0
- package/tools/scan/merge.py +212 -0
- package/tools/scan/orchestrator.py +549 -0
- package/tools/scan/registry.py +127 -0
- package/tools/scan/scanners/__init__.py +18 -0
- package/tools/scan/scanners/base.py +137 -0
- package/tools/scan/scanners/environment.py +349 -0
- package/tools/scan/scanners/git.py +570 -0
- package/tools/scan/scanners/infrastructure.py +875 -0
- package/tools/scan/scanners/orchestration.py +600 -0
- package/tools/scan/scanners/stack.py +1085 -0
- package/tools/scan/scanners/tools.py +260 -0
- package/tools/scan/setup.py +686 -0
- package/tools/scan/tests/__init__.py +1 -0
- package/tools/scan/tests/conftest.py +796 -0
- package/tools/scan/tests/test_environment.py +323 -0
- package/tools/scan/tests/test_git.py +419 -0
- package/tools/scan/tests/test_infrastructure.py +382 -0
- package/tools/scan/tests/test_integration.py +920 -0
- package/tools/scan/tests/test_merge.py +269 -0
- package/tools/scan/tests/test_orchestration.py +304 -0
- package/tools/scan/tests/test_stack.py +604 -0
- package/tools/scan/tests/test_tools.py +349 -0
- package/tools/scan/ui.py +624 -0
- package/tools/scan/verify.py +270 -0
- package/tools/scan/walk.py +118 -0
- package/tools/scan/workspace.py +85 -0
- package/tools/validation/README.md +244 -0
- package/tools/validation/__init__.py +17 -0
- package/tools/validation/approval_gate.py +321 -0
- package/tools/validation/validate_skills.py +189 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gaia
|
|
3
|
+
description: Invoke the Gaia meta-agent for system architecture analysis, agent design, skill creation, and orchestration debugging
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash(*)
|
|
6
|
+
- Read
|
|
7
|
+
- Edit
|
|
8
|
+
- Write
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- WebSearch
|
|
12
|
+
- WebFetch
|
|
13
|
+
- Task
|
|
14
|
+
- Agent
|
|
15
|
+
- Skill
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Invoke the Gaia meta-agent (`gaia-system`) to work on the gaia-ops orchestration
|
|
19
|
+
system itself. This is the entry point for tasks that modify or analyze agents,
|
|
20
|
+
skills, hooks, or system architecture.
|
|
21
|
+
|
|
22
|
+
## When to use
|
|
23
|
+
|
|
24
|
+
- Analyze or improve the gaia-ops architecture
|
|
25
|
+
- Create or update agent definitions (`.md` files)
|
|
26
|
+
- Create or update skills (`SKILL.md` files)
|
|
27
|
+
- Write or debug Python hooks and tools
|
|
28
|
+
- Update `CLAUDE.md` or system configuration
|
|
29
|
+
- Research best practices for agent orchestration
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
This command delegates to the `gaia-system` agent, which is the meta-agent
|
|
34
|
+
specialized in the orchestration system. It follows the standard agent protocol
|
|
35
|
+
and returns a `json:contract` block with findings and status.
|
|
36
|
+
|
|
37
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Config
|
|
2
|
+
|
|
3
|
+
Configuration lives here, separate from hooks, because these are data files — not code. Hooks are Python scripts that run at runtime; config files are JSON documents that those scripts read to make decisions. Keeping them apart means you can audit and change system behavior (which agents see which context sections, what git commit patterns are allowed, which surfaces route where) without touching executable code. It also makes the config files version-controllable and reviewable on their own terms.
|
|
4
|
+
|
|
5
|
+
The contracts are the most important piece in this directory. `context-contracts.json` defines, per agent, which sections of `project-context.json` the agent is allowed to read and which it is allowed to write. This is the access control layer for project knowledge — an agent that is not in the contracts file receives no context injection at all. The cloud extension files in `cloud/` extend these contracts for cloud-specific sections without modifying the base file, so adding a new cloud provider is a new file, not an edit to the core.
|
|
6
|
+
|
|
7
|
+
The other files — routing, git standards, universal rules — are each consumed by a specific module and do exactly what their names say. There is no magic here: the files are loaded, parsed, and applied by the module that reads them.
|
|
8
|
+
|
|
9
|
+
## Cuándo se activa
|
|
10
|
+
|
|
11
|
+
This component does not activate as a runtime process. Each file is read on-demand by the module that needs it. The table below shows the read point for each file.
|
|
12
|
+
|
|
13
|
+
**Cuándo se lee cada archivo:**
|
|
14
|
+
|
|
15
|
+
| File | Read by | When |
|
|
16
|
+
|------|---------|------|
|
|
17
|
+
| `surface-routing.json` | `hooks/user_prompt_submit.py` | Every prompt — determines routing recommendation injected into orchestrator context |
|
|
18
|
+
| `context-contracts.json` | `tools/context/context_provider.py` | Every agent dispatch — determines which project-context sections to inject |
|
|
19
|
+
| `git_standards.json` | `hooks/modules/validation/commit_validator.py` | Every `git commit` call intercepted by PreToolUse |
|
|
20
|
+
| `universal-rules.json` | `tools/context/context_provider.py` | Every agent dispatch — injected into all agents alongside project context |
|
|
21
|
+
| `cloud/gcp.json` | `tools/context/context_provider.py` | Agent dispatch when `cloud_provider = gcp` in project-context.json |
|
|
22
|
+
| `cloud/aws.json` | `tools/context/context_provider.py` | Agent dispatch when `cloud_provider = aws` in project-context.json |
|
|
23
|
+
|
|
24
|
+
**Base + cloud merge flow:**
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Agent dispatch triggered
|
|
28
|
+
|
|
|
29
|
+
context_provider.py reads context-contracts.json <- cloud-agnostic base
|
|
30
|
+
|
|
|
31
|
+
Detects cloud_provider from project-context.json
|
|
32
|
+
|
|
|
33
|
+
Reads cloud/{provider}.json <- cloud extensions
|
|
34
|
+
|
|
|
35
|
+
Merges: extends read/write lists per agent (no duplicates)
|
|
36
|
+
|
|
|
37
|
+
Result: complete contract for this agent on this cloud
|
|
38
|
+
|
|
|
39
|
+
Agent receives filtered project-context sections
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Qué hay aquí
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
config/
|
|
46
|
+
├── context-contracts.json # Per-agent read/write access to project-context sections
|
|
47
|
+
├── surface-routing.json # Intent classification and agent routing signals
|
|
48
|
+
├── git_standards.json # Commit type allowlist, footer rules, Conventional Commits config
|
|
49
|
+
├── universal-rules.json # Behavior rules injected into all agents at dispatch time
|
|
50
|
+
├── cloud/
|
|
51
|
+
│ ├── gcp.json # GCP-specific context sections (extends base contracts)
|
|
52
|
+
│ └── aws.json # AWS-specific context sections (extends base contracts)
|
|
53
|
+
└── README.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Convenciones
|
|
57
|
+
|
|
58
|
+
**context-contracts.json schema:** Each entry is keyed by agent name. Each agent has `read` (list of project-context section names the agent receives) and `write` (list of sections the agent can update via CONTEXT_UPDATE). `core_sections` is a top-level list of sections injected into every agent regardless of per-agent config.
|
|
59
|
+
|
|
60
|
+
**Adding a new cloud:** Create `cloud/azure.json` following the same schema as `cloud/gcp.json`. Define agent-specific sections for that cloud. No code changes needed — `context_provider.py` detects the file automatically by matching `cloud_provider` from project-context.
|
|
61
|
+
|
|
62
|
+
**surface-routing.json format:** Each surface entry has `intent`, `primary_agent`, `adjacent_surfaces`, and `signals` (with `high` and `medium` confidence keyword lists). High-confidence signals are checked first; medium signals act as tie-breakers.
|
|
63
|
+
|
|
64
|
+
**universal-rules.json:** Changes here affect every agent in every session. Add only rules that are truly universal — constraints that apply regardless of domain. Domain-specific rules belong in the relevant skill (`security-tiers`, `command-execution`, etc.).
|
|
65
|
+
|
|
66
|
+
## Ver también
|
|
67
|
+
|
|
68
|
+
- [`hooks/user_prompt_submit.py`](../hooks/user_prompt_submit.py) — reads `surface-routing.json` on every prompt
|
|
69
|
+
- [`hooks/modules/validation/`](../hooks/modules/validation/) — reads `git_standards.json` on commit validation
|
|
70
|
+
- [`tools/context/`](../tools/context/) — reads contracts and universal-rules at agent dispatch time
|
|
71
|
+
- [`agents/README.md`](../agents/README.md) — agent names that must match context-contracts.json keys
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0",
|
|
3
|
+
"provider": "aws",
|
|
4
|
+
"description": "AWS-specific context extensions. Merged on top of context-contracts.json at runtime by context_provider.py.",
|
|
5
|
+
"agents": {
|
|
6
|
+
"cloud-troubleshooter": {
|
|
7
|
+
"read": [
|
|
8
|
+
"vpc_mapping",
|
|
9
|
+
"load_balancers",
|
|
10
|
+
"api_gateway",
|
|
11
|
+
"irsa_bindings",
|
|
12
|
+
"aws_accounts"
|
|
13
|
+
],
|
|
14
|
+
"write": [
|
|
15
|
+
"vpc_mapping",
|
|
16
|
+
"load_balancers",
|
|
17
|
+
"irsa_bindings"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"terraform-architect": {
|
|
21
|
+
"read": [
|
|
22
|
+
"vpc_mapping",
|
|
23
|
+
"load_balancers",
|
|
24
|
+
"api_gateway",
|
|
25
|
+
"irsa_bindings",
|
|
26
|
+
"aws_accounts"
|
|
27
|
+
],
|
|
28
|
+
"write": [
|
|
29
|
+
"vpc_mapping",
|
|
30
|
+
"load_balancers",
|
|
31
|
+
"api_gateway",
|
|
32
|
+
"irsa_bindings"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"gitops-operator": {
|
|
36
|
+
"read": [
|
|
37
|
+
"irsa_bindings"
|
|
38
|
+
],
|
|
39
|
+
"write": []
|
|
40
|
+
},
|
|
41
|
+
"developer": {
|
|
42
|
+
"read": [
|
|
43
|
+
"aws_accounts",
|
|
44
|
+
"load_balancers"
|
|
45
|
+
],
|
|
46
|
+
"write": []
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"section_schemas": {
|
|
50
|
+
"aws_accounts": {
|
|
51
|
+
"_description": "AWS account IDs by environment. AWS projects often use multiple accounts (prod, dev, shared services).",
|
|
52
|
+
"production": {
|
|
53
|
+
"account_id": "",
|
|
54
|
+
"account_alias": "",
|
|
55
|
+
"region": "us-east-1"
|
|
56
|
+
},
|
|
57
|
+
"development": {
|
|
58
|
+
"account_id": "",
|
|
59
|
+
"account_alias": "",
|
|
60
|
+
"region": "us-east-1"
|
|
61
|
+
},
|
|
62
|
+
"shared": {
|
|
63
|
+
"account_id": "",
|
|
64
|
+
"account_alias": "",
|
|
65
|
+
"purpose": "Shared services (ECR, shared EKS, tooling)"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"vpc_mapping": {
|
|
69
|
+
"_description": "AWS VPC topology per environment, including subnets and AZ mapping",
|
|
70
|
+
"vpcs": [
|
|
71
|
+
{
|
|
72
|
+
"vpc_id": "",
|
|
73
|
+
"name": "",
|
|
74
|
+
"environment": "production",
|
|
75
|
+
"region": "us-east-1",
|
|
76
|
+
"cidr": "10.0.0.0/16",
|
|
77
|
+
"subnets": {
|
|
78
|
+
"private": [],
|
|
79
|
+
"public": []
|
|
80
|
+
},
|
|
81
|
+
"availability_zones": [],
|
|
82
|
+
"clusters": [],
|
|
83
|
+
"status": "ACTIVE"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"load_balancers": {
|
|
88
|
+
"_description": "AWS NLB and ALB resources by service and cluster",
|
|
89
|
+
"_example": {
|
|
90
|
+
"my-service-nlb-prod": {
|
|
91
|
+
"name": "my-service-nlb-prod",
|
|
92
|
+
"type": "network",
|
|
93
|
+
"scheme": "internal",
|
|
94
|
+
"dns": "xxxx.elb.us-east-1.amazonaws.com",
|
|
95
|
+
"service": "my-service",
|
|
96
|
+
"namespace": "my-namespace",
|
|
97
|
+
"cluster": "my-eks-cluster",
|
|
98
|
+
"purpose": ""
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"api_gateway": {
|
|
103
|
+
"_description": "AWS API Gateway V2 (HTTP/WebSocket) configurations and VPC Links",
|
|
104
|
+
"vpc_links": {
|
|
105
|
+
"_example_key": {
|
|
106
|
+
"id": "",
|
|
107
|
+
"status": "ACTIVE",
|
|
108
|
+
"target_nlb": "",
|
|
109
|
+
"target_nlb_dns": "",
|
|
110
|
+
"backend_service": "",
|
|
111
|
+
"namespace": "",
|
|
112
|
+
"cluster": "",
|
|
113
|
+
"host": "",
|
|
114
|
+
"purpose": ""
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"apis": []
|
|
118
|
+
},
|
|
119
|
+
"irsa_bindings": {
|
|
120
|
+
"_description": "IAM Roles for Service Accounts (OIDC-based). AWS equivalent of GCP Workload Identity.",
|
|
121
|
+
"_example": {
|
|
122
|
+
"my-service-sa": {
|
|
123
|
+
"kubernetes_sa": "my-service-sa",
|
|
124
|
+
"namespace": "my-namespace",
|
|
125
|
+
"iam_role_arn": "arn:aws:iam::123456789012:role/my-service-role",
|
|
126
|
+
"iam_policies": [
|
|
127
|
+
"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"
|
|
128
|
+
],
|
|
129
|
+
"purpose": "Describe what this service account does"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0",
|
|
3
|
+
"provider": "gcp",
|
|
4
|
+
"description": "GCP-specific context extensions. Merged on top of context-contracts.json at runtime by context_provider.py.",
|
|
5
|
+
"agents": {
|
|
6
|
+
"cloud-troubleshooter": {
|
|
7
|
+
"read": [
|
|
8
|
+
"gcp_services",
|
|
9
|
+
"workload_identity",
|
|
10
|
+
"static_ips"
|
|
11
|
+
],
|
|
12
|
+
"write": [
|
|
13
|
+
"gcp_services",
|
|
14
|
+
"workload_identity",
|
|
15
|
+
"static_ips"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"terraform-architect": {
|
|
19
|
+
"read": [
|
|
20
|
+
"gcp_services",
|
|
21
|
+
"workload_identity",
|
|
22
|
+
"static_ips"
|
|
23
|
+
],
|
|
24
|
+
"write": [
|
|
25
|
+
"gcp_services",
|
|
26
|
+
"workload_identity",
|
|
27
|
+
"static_ips"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"gitops-operator": {
|
|
31
|
+
"read": [
|
|
32
|
+
"workload_identity",
|
|
33
|
+
"gcp_services"
|
|
34
|
+
],
|
|
35
|
+
"write": []
|
|
36
|
+
},
|
|
37
|
+
"developer": {
|
|
38
|
+
"read": [
|
|
39
|
+
"gcp_services"
|
|
40
|
+
],
|
|
41
|
+
"write": []
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"section_schemas": {
|
|
45
|
+
"gcp_services": {
|
|
46
|
+
"_description": "GCP-managed services used by the project (Artifact Registry, Cloud SQL, Memorystore, etc.)",
|
|
47
|
+
"artifact_registry": {
|
|
48
|
+
"repositories": [
|
|
49
|
+
{
|
|
50
|
+
"name": "",
|
|
51
|
+
"location": "",
|
|
52
|
+
"format": "DOCKER",
|
|
53
|
+
"project": "",
|
|
54
|
+
"url": ""
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"cloud_sql": {
|
|
59
|
+
"instances": [
|
|
60
|
+
{
|
|
61
|
+
"name": "",
|
|
62
|
+
"version": "POSTGRES_15",
|
|
63
|
+
"tier": "db-f1-micro",
|
|
64
|
+
"region": "",
|
|
65
|
+
"database_flags": {},
|
|
66
|
+
"status": ""
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"memorystore": {
|
|
71
|
+
"instances": [
|
|
72
|
+
{
|
|
73
|
+
"name": "",
|
|
74
|
+
"tier": "BASIC",
|
|
75
|
+
"memory_size_gb": 1,
|
|
76
|
+
"region": "",
|
|
77
|
+
"status": ""
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"cloud_storage": {
|
|
82
|
+
"buckets": [
|
|
83
|
+
{
|
|
84
|
+
"name": "",
|
|
85
|
+
"location": "",
|
|
86
|
+
"storage_class": "STANDARD",
|
|
87
|
+
"purpose": ""
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"secret_manager": {
|
|
92
|
+
"enabled": true,
|
|
93
|
+
"secrets": []
|
|
94
|
+
},
|
|
95
|
+
"pubsub": {
|
|
96
|
+
"topics": [],
|
|
97
|
+
"subscriptions": []
|
|
98
|
+
},
|
|
99
|
+
"cloud_nat": {
|
|
100
|
+
"name": "",
|
|
101
|
+
"router": "",
|
|
102
|
+
"region": "",
|
|
103
|
+
"status": ""
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"workload_identity": {
|
|
107
|
+
"_description": "GCP Workload Identity bindings: Kubernetes ServiceAccount -> GCP ServiceAccount with IAM roles",
|
|
108
|
+
"_example": {
|
|
109
|
+
"my-service-sa": {
|
|
110
|
+
"kubernetes_sa": "my-service-sa",
|
|
111
|
+
"namespace": "my-namespace",
|
|
112
|
+
"gcp_sa": "my-service-sa@project-id.iam.gserviceaccount.com",
|
|
113
|
+
"iam_roles": [
|
|
114
|
+
"roles/cloudsql.client",
|
|
115
|
+
"roles/secretmanager.secretAccessor",
|
|
116
|
+
"roles/artifactregistry.reader"
|
|
117
|
+
],
|
|
118
|
+
"purpose": "Describe what this service account does"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"static_ips": {
|
|
123
|
+
"_description": "GCP global and regional static IP addresses used for Ingress and services",
|
|
124
|
+
"_example": {
|
|
125
|
+
"my-service-ip": {
|
|
126
|
+
"name": "my-service-ip",
|
|
127
|
+
"address": "34.x.x.x",
|
|
128
|
+
"type": "global",
|
|
129
|
+
"purpose": "Ingress for my-service",
|
|
130
|
+
"dns_records": [
|
|
131
|
+
"my-service.example.com"
|
|
132
|
+
],
|
|
133
|
+
"ssl_certificates": "Active until YYYY-MM-DD",
|
|
134
|
+
"status": ""
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "4.0",
|
|
3
|
+
"description": "Context contracts v4: universal core sections + agent-specific ops sections + workspace_repos. Core sections are granted to every agent. Cloud-specific extensions live in cloud/{provider}.json.",
|
|
4
|
+
"core_sections": [
|
|
5
|
+
"project_identity",
|
|
6
|
+
"stack",
|
|
7
|
+
"git",
|
|
8
|
+
"environment",
|
|
9
|
+
"application_services",
|
|
10
|
+
"architecture_overview",
|
|
11
|
+
"operational_guidelines"
|
|
12
|
+
],
|
|
13
|
+
"section_schemas": {
|
|
14
|
+
"workspace_repos": {
|
|
15
|
+
"description": "Array of repositories in a multi-repo workspace",
|
|
16
|
+
"schema": {
|
|
17
|
+
"repos": [
|
|
18
|
+
{
|
|
19
|
+
"name": "string",
|
|
20
|
+
"path": "string (relative to workspace root)",
|
|
21
|
+
"remote_url": "string",
|
|
22
|
+
"platform": "string (github/gitlab/bitbucket)",
|
|
23
|
+
"role": "string (gitops/iac/platform/agent/library)",
|
|
24
|
+
"primary_language": "string"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"agents": {
|
|
31
|
+
"cloud-troubleshooter": {
|
|
32
|
+
"read": [
|
|
33
|
+
"project_identity",
|
|
34
|
+
"stack",
|
|
35
|
+
"git",
|
|
36
|
+
"environment",
|
|
37
|
+
"application_services",
|
|
38
|
+
"architecture_overview",
|
|
39
|
+
"operational_guidelines",
|
|
40
|
+
"infrastructure",
|
|
41
|
+
"orchestration",
|
|
42
|
+
"cluster_details",
|
|
43
|
+
"infrastructure_topology",
|
|
44
|
+
"terraform_infrastructure",
|
|
45
|
+
"gitops_configuration",
|
|
46
|
+
"monitoring_observability",
|
|
47
|
+
"workspace_repos"
|
|
48
|
+
],
|
|
49
|
+
"write": [
|
|
50
|
+
"cluster_details",
|
|
51
|
+
"infrastructure_topology",
|
|
52
|
+
"application_services",
|
|
53
|
+
"monitoring_observability",
|
|
54
|
+
"architecture_overview"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"gitops-operator": {
|
|
58
|
+
"read": [
|
|
59
|
+
"project_identity",
|
|
60
|
+
"stack",
|
|
61
|
+
"git",
|
|
62
|
+
"environment",
|
|
63
|
+
"application_services",
|
|
64
|
+
"architecture_overview",
|
|
65
|
+
"operational_guidelines",
|
|
66
|
+
"infrastructure",
|
|
67
|
+
"orchestration",
|
|
68
|
+
"gitops_configuration",
|
|
69
|
+
"cluster_details",
|
|
70
|
+
"workspace_repos"
|
|
71
|
+
],
|
|
72
|
+
"write": [
|
|
73
|
+
"gitops_configuration",
|
|
74
|
+
"cluster_details",
|
|
75
|
+
"application_services"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"terraform-architect": {
|
|
79
|
+
"read": [
|
|
80
|
+
"project_identity",
|
|
81
|
+
"stack",
|
|
82
|
+
"git",
|
|
83
|
+
"environment",
|
|
84
|
+
"application_services",
|
|
85
|
+
"architecture_overview",
|
|
86
|
+
"operational_guidelines",
|
|
87
|
+
"infrastructure",
|
|
88
|
+
"orchestration",
|
|
89
|
+
"terraform_infrastructure",
|
|
90
|
+
"infrastructure_topology",
|
|
91
|
+
"cluster_details",
|
|
92
|
+
"workspace_repos"
|
|
93
|
+
],
|
|
94
|
+
"write": [
|
|
95
|
+
"terraform_infrastructure",
|
|
96
|
+
"infrastructure_topology"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"developer": {
|
|
100
|
+
"read": [
|
|
101
|
+
"project_identity",
|
|
102
|
+
"stack",
|
|
103
|
+
"git",
|
|
104
|
+
"environment",
|
|
105
|
+
"application_services",
|
|
106
|
+
"architecture_overview",
|
|
107
|
+
"operational_guidelines",
|
|
108
|
+
"infrastructure",
|
|
109
|
+
"workspace_repos"
|
|
110
|
+
],
|
|
111
|
+
"write": [
|
|
112
|
+
"application_services",
|
|
113
|
+
"architecture_overview"
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"gaia-planner": {
|
|
117
|
+
"read": [
|
|
118
|
+
"project_identity",
|
|
119
|
+
"stack",
|
|
120
|
+
"git",
|
|
121
|
+
"environment",
|
|
122
|
+
"application_services",
|
|
123
|
+
"architecture_overview",
|
|
124
|
+
"operational_guidelines",
|
|
125
|
+
"infrastructure",
|
|
126
|
+
"workspace_repos"
|
|
127
|
+
],
|
|
128
|
+
"write": []
|
|
129
|
+
},
|
|
130
|
+
"gaia-operator": {
|
|
131
|
+
"read": [
|
|
132
|
+
"project_identity",
|
|
133
|
+
"stack",
|
|
134
|
+
"git",
|
|
135
|
+
"environment",
|
|
136
|
+
"workspace_repos"
|
|
137
|
+
],
|
|
138
|
+
"write": [
|
|
139
|
+
"workspace_repos"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"gaia-system": {
|
|
143
|
+
"read": [
|
|
144
|
+
"project_identity",
|
|
145
|
+
"stack",
|
|
146
|
+
"git",
|
|
147
|
+
"environment",
|
|
148
|
+
"application_services",
|
|
149
|
+
"architecture_overview",
|
|
150
|
+
"operational_guidelines",
|
|
151
|
+
"infrastructure"
|
|
152
|
+
],
|
|
153
|
+
"write": [
|
|
154
|
+
"architecture_overview"
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Crons Persistence Schema
|
|
2
|
+
|
|
3
|
+
**Version:** 1
|
|
4
|
+
**File location:** `.claude/crons.json`
|
|
5
|
+
**Owner:** Gaia cron persistence system
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Schema
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"crons": [
|
|
14
|
+
{
|
|
15
|
+
"name": "check-email",
|
|
16
|
+
"interval_minutes": 180,
|
|
17
|
+
"prompt": "Revisa el correo y haz triage según gmail-triage skill",
|
|
18
|
+
"enabled": true,
|
|
19
|
+
"created": "2026-04-13T20:00:00Z",
|
|
20
|
+
"last_run": "2026-04-13T23:00:00Z"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"version": 1
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Field Definitions
|
|
28
|
+
|
|
29
|
+
| Field | Type | Required | Description |
|
|
30
|
+
|-------|------|----------|-------------|
|
|
31
|
+
| `name` | string | yes | Unique identifier for the cron. Used as the dedup key during restore. Must be URL-safe (alphanumeric, hyphens). |
|
|
32
|
+
| `interval_minutes` | integer | yes | How often the cron fires, in minutes. Mirrors CronCreate interval. |
|
|
33
|
+
| `prompt` | string | yes | The exact prompt sent to the orchestrator on each tick. |
|
|
34
|
+
| `enabled` | boolean | yes | If false, the cron is skipped during restore. Allows pausing without deletion. |
|
|
35
|
+
| `created` | string (ISO 8601 UTC) | yes | Timestamp when the cron was first created. Set once, never updated. |
|
|
36
|
+
| `last_run` | string (ISO 8601 UTC) or null | yes | Timestamp of the most recent execution. Null if the cron has never run. |
|
|
37
|
+
|
|
38
|
+
## Top-level Fields
|
|
39
|
+
|
|
40
|
+
| Field | Type | Description |
|
|
41
|
+
|-------|------|-------------|
|
|
42
|
+
| `crons` | array | The list of persisted cron entries. May be empty. |
|
|
43
|
+
| `version` | integer | Schema version. Currently 1. Increment when field semantics change. |
|
|
44
|
+
|
|
45
|
+
## Constraints
|
|
46
|
+
|
|
47
|
+
- `name` must be unique within the `crons` array. Duplicate names are invalid.
|
|
48
|
+
- `interval_minutes` must be a positive integer greater than 0.
|
|
49
|
+
- `last_run` is `null` when the cron has been created but has not yet fired.
|
|
50
|
+
|
|
51
|
+
## Example: Multiple Crons
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"crons": [
|
|
56
|
+
{
|
|
57
|
+
"name": "check-email",
|
|
58
|
+
"interval_minutes": 180,
|
|
59
|
+
"prompt": "Revisa el correo y haz triage según gmail-triage skill",
|
|
60
|
+
"enabled": true,
|
|
61
|
+
"created": "2026-04-13T20:00:00Z",
|
|
62
|
+
"last_run": "2026-04-13T23:00:00Z"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "drift-monitor",
|
|
66
|
+
"interval_minutes": 60,
|
|
67
|
+
"prompt": "Check for infrastructure drift in the current project",
|
|
68
|
+
"enabled": false,
|
|
69
|
+
"created": "2026-04-10T10:00:00Z",
|
|
70
|
+
"last_run": null
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"version": 1
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## File Location
|
|
78
|
+
|
|
79
|
+
The file lives at `.claude/crons.json`, resolved relative to the active project root (same directory where `.claude/` is found). The path module `find_claude_dir()` from `hooks/modules/core/paths.py` provides the canonical `.claude/` path.
|
|
80
|
+
|
|
81
|
+
For projects that use `CLAUDE_PLUGIN_DATA`, the file lives under that data directory instead, consistent with how other persisted data (logs, sessions, grants) is stored.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commit_message": {
|
|
3
|
+
"format": "conventional_commits",
|
|
4
|
+
"description": "Commit messages must follow Conventional Commits specification",
|
|
5
|
+
|
|
6
|
+
"type_allowed": [
|
|
7
|
+
"feat",
|
|
8
|
+
"fix",
|
|
9
|
+
"refactor",
|
|
10
|
+
"docs",
|
|
11
|
+
"test",
|
|
12
|
+
"chore",
|
|
13
|
+
"ci",
|
|
14
|
+
"perf",
|
|
15
|
+
"style",
|
|
16
|
+
"build"
|
|
17
|
+
],
|
|
18
|
+
|
|
19
|
+
"scope_required": false,
|
|
20
|
+
"scope_examples": ["helmrelease", "terraform", "pg-non-prod", "infrastructure"],
|
|
21
|
+
|
|
22
|
+
"subject_max_length": 72,
|
|
23
|
+
"subject_rules": {
|
|
24
|
+
"capitalize_first_letter": false,
|
|
25
|
+
"no_period_at_end": true,
|
|
26
|
+
"imperative_mood": true,
|
|
27
|
+
"no_emoji": true
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
"body_max_line_length": 72,
|
|
31
|
+
"body_required": false,
|
|
32
|
+
|
|
33
|
+
"footer_forbidden": [
|
|
34
|
+
"Generated with Claude Code",
|
|
35
|
+
"Co-Authored-By: Claude",
|
|
36
|
+
"🤖 Generated with"
|
|
37
|
+
],
|
|
38
|
+
|
|
39
|
+
"footer_allowed": [
|
|
40
|
+
"BREAKING CHANGE:",
|
|
41
|
+
"Refs:",
|
|
42
|
+
"Closes:",
|
|
43
|
+
"Fixes:",
|
|
44
|
+
"Implements:",
|
|
45
|
+
"See:"
|
|
46
|
+
],
|
|
47
|
+
|
|
48
|
+
"examples_valid": [
|
|
49
|
+
"feat(helmrelease): add Phase 3.3 services",
|
|
50
|
+
"fix(pg-non-prod): correct API key environment variable mappings",
|
|
51
|
+
"refactor: simplify context provider logic",
|
|
52
|
+
"docs: update README with new workflow",
|
|
53
|
+
"chore(deps): update terraform to v1.6.0"
|
|
54
|
+
],
|
|
55
|
+
|
|
56
|
+
"examples_invalid": [
|
|
57
|
+
"Added new feature",
|
|
58
|
+
"Fixed bugs",
|
|
59
|
+
"Updates",
|
|
60
|
+
"feat: add feature\n\n🤖 Generated with Claude Code",
|
|
61
|
+
"feat: add new feature 🚀",
|
|
62
|
+
"fix: 🐛 correct bug"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
"enforcement": {
|
|
67
|
+
"enabled": true,
|
|
68
|
+
"block_on_failure": true,
|
|
69
|
+
"log_violations": true,
|
|
70
|
+
"log_path": ".claude/logs/commit-violations.jsonl"
|
|
71
|
+
}
|
|
72
|
+
}
|