@ccoalm/ccl-skills 0.1.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/LICENSE +201 -0
- package/README.md +49 -0
- package/dist/assets/marketplace/.agents/plugins/marketplace.json +12 -0
- package/dist/assets/marketplace/.claude-plugin/marketplace.json +13 -0
- package/dist/assets/marketplace/marketplace-manifest.json +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/marketplace.json +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.codex-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.worktree-only +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/session-start.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/subagent-start.md +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/AGENTS.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-delegation-owner.sh +125 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-edit-isolation.sh +102 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-merge-authorization.sh +1156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/hooks.json +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/merge-authorization-prompt.sh +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-guard.sh +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-stop.sh +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/remind-post-merge-cleanup.sh +144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-context.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-start.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/skill-extraction-gate-stop.sh +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/subagent-start.sh +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_delegation_owner.sh +329 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_edit_isolation.sh +322 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_merge_authorization.sh +902 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_merge_authorization_prompt.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_remind_post_merge_cleanup.sh +121 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_session_start.sh +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/ccl-skills.ts +564 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-install-skills.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-update-skills.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-verify-skills.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-worktree-check.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/AGENTS.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/README.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.example.json +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.sh +1307 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/test.sh +941 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/SKILL.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +188 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/android-dev.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/flutter-dev.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/ios-dev.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/kotlin-multiplatform.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-platform-boundaries.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-quality-release.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/source-evidence-map.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +353 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/client-routing.md +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/manual-invocation-and-prompts.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/timeout-auth-and-capabilities.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_timeout_exit.sh +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/claude_review.sh +1438 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/concern_excerpt.py +295 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/egress_schema.py +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/init_policy_matrix.py +642 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py +181 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_review.sh +1165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/opencode_review.sh +1190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py +946 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_opencode_review.py +474 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_probe_result.py +1899 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_review_json.py +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +2845 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.sh +6 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/run_claude_capture.py +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/runtime-surface-verification-design.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_classify_envelope.sh +68 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_claude_review_probe.sh +2311 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh +1832 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_code_review_identity.sh +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_concern_excerpt.sh +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_egress_schema.sh +177 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_init_policy_matrix.sh +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py +195 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_concurrency.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_retry.sh +1005 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_opencode_review.sh +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_probe_result.sh +574 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_review_json.sh +349 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +434 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_order.sh +264 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +2412 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/verify_native_skill_binding.py +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md +153 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/diagnosis-playbook.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/prevention-routing.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/SKILL.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/references/security-review-gate.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/SKILL.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/api-security-boundaries.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/architecture-playbook.md +160 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/artifact-generation-architecture.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/audit-history-architecture.md +29 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/bulk-workflow-architecture.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/config-rule-routing-architecture.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/cross-cutting-concerns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-modeling-and-migrations.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-platform-architecture.md +210 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/dependency-platform.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/developer-tooling-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/error-contract-architecture.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/event-driven-architecture.md +260 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/http-gateway-architecture.md +74 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/mq-consumer-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/multi-tenant-isolation.md +275 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/notification-architecture.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/ops-checklist.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/performance-capacity-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/protobuf-contract-architecture.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/redis-cache-coordination.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/release-runtime-readiness.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/replay-comparison-architecture.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/runtime-observability.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/service-scaffold.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/workflow-state-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +159 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/artifact-generation-patterns.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/audit-history-patterns.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/bulk-import-export-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/config-rule-routing-patterns.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/data-access-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/db-schema-and-dal-patterns.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/dependency-client-patterns.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/developer-tooling-patterns.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/domain-feature-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/engineering-patterns.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/error-contract-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/feature-playbook.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/http-gateway-client-patterns.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/mq-consumer-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/notification-patterns.md +42 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/observability-implementation-patterns.md +101 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/performance-capacity-patterns.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/protobuf-contract-patterns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/public-api-integration-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/quality-and-testing-patterns.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/redis-cache-lock-patterns.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/release-ops-patterns.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/reliability-patterns.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/replay-comparison-patterns.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/scaffold-and-codegen.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/source-evidence-map.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/state-machine-task-patterns.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/SKILL.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +117 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-approval-auto-reviewer.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-command-sandbox.md +441 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-context-freshness.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-credentials-auth.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-extensions-skills.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-file-edit-protocol.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-ide-integration.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-input-ingestion.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-instruction-composition.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-lifecycle-hooks.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-messaging.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-runtime-bootstrap.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-session-persistence.md +448 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-task-orchestration.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-tool-dispatch.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-turn-lifecycle.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/inference-capacity-operations.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/llm-client-gateway.md +156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/model-prompt-evaluation.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/retrieval-agent-safety.md +273 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +202 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/contracts-and-state.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/cross-stack-alignment.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/framework-choice.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/online-practice-uptake.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/platform-capabilities.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/product-page-checklist.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/qa-release.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/source-evidence-map.md +82 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md +103 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/agents/openai.yaml +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/references/multi-agent-delegation-playbook.md +100 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/SKILL.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-data-acquisition.md +549 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-disclosure-channels.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/research-prompts.md +66 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/AGENTS.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/test-public-data-acquisition-recipes.sh +379 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +244 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/alerting-and-on-call.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/framework-middleware-checklist.md +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/infra-component-deployment.md +268 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-correlation-recipe.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-schema-canonical.md +208 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/metrics-conventions.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/obs-stack-architecture.md +107 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/sli-slo-design.md +95 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/source-register.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +303 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/canary-and-rollout-strategy.md +163 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/config-center-via-etcd.md +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/custom-control-plane-boundary.md +298 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-cli-concrete-recipe.md +312 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-pipeline.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/env-and-lane-matrix.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/lane-orchestration-control-plane.md +383 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/multi-region-and-cluster.md +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/promotion-gate-and-review.md +149 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/python-package-registry-release.md +462 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/rollback-playbook.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/secret-and-config-management.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/version-authority-and-deprecation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/dual-sidecar-and-traffic-config-center.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/framework-middleware.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/grpc-authority-workaround.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/http-response-envelope-contract.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/mesh-architecture.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/multi-env-routing.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/protobuf-http-contract-signals.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/retry-timeout-circuit-breaker.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/rpc-framework-recipe.md +494 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-choice.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-migration-playbook.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-recipe.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/adr-convention.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-checklist.md +30 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-evaluation-report-template.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-execution-spec.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-sop.md +457 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-templates.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/artifact-egress-confidentiality.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/code-review-checklist.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/cross-repo-coordination.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/delivery-lifecycle.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-routing-and-readiness.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/diagnostic-spec-match-gate.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dispatch-owner-skills.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dormant-code-activation.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/existing-project-assessment-report.md +223 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/external-skill-augmentation.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/feature-deprecation-cascade.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/high-risk-resilience-gates.md +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-completeness-and-minimality.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-entry-reentry-gate.md +122 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/modular-monolith-heuristic.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md +115 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/problem-resolution-and-learning.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-attributes.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-remediation-program.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/rd-standards-doc-family-checklist.md +27 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/review-reception.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/shared-gate-artifact-classification.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/source-evidence-map.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/status-tracker-sync.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/sync-spec-repo-contract.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/verify-developer-experience.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/worktree-mechanics.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh +213 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/SKILL.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/agents/openai.yaml +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/analytics-visualization-interactions.md +206 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/behavioral-aesthetic-logic.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/complex-creation-interactions.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-execution-checklist.md +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-impl-naming-and-versioning.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-intake-and-acceptance.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-system-source-of-truth.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/frontend-code-evidence-map.md +63 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/interaction-design-patterns.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/layout-recipes-and-screenshot-acceptance.md +250 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-project-token-consistency.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-stack-strategy.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/operational-processing-workflows.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-mobile-patterns.md +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-web-desktop-patterns.md +456 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-lifecycle-acceptance-and-iteration.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-surface-patterns.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/resource-management-interactions.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/scenario-community-patterns.md +133 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/source-map.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/tokens-and-components.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/trust-sensitive-ai-and-data-patterns.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-audit.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-design-development.md +176 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/visual-craft.md +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/SKILL.md +157 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/ai-service-integration-boundaries.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-contract-and-schema.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-security-boundaries.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/architecture-playbook.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/async-execution-model.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/background-jobs-and-scheduling.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/batch-and-pipeline-architecture.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/config-secrets-runtime.md +22 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-modeling-and-migrations.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-platform-architecture.md +211 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/event-driven-architecture.md +263 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/multi-tenant-isolation.md +281 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/observability-and-ops.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/packaging-runtime-readiness.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/redis-cache-coordination.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/reliability-and-error-contract.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/web-framework-boundaries.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/ai-service-wiring-patterns.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/async-and-worker-patterns.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/background-job-patterns.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/batch-and-artifact-patterns.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/dependency-client-patterns.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/error-handling-patterns.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/feature-playbook.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/observability-implementation-patterns.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/project-structure-and-tooling.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/public-api-security-patterns.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/redis-cache-lock-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/schema-and-validation-patterns.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/source-evidence-map.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/sqlalchemy-and-migrations-patterns.md +99 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/testing-and-quality-patterns.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/web-framework-patterns.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/config-runtime-readback.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/mr-merge-authorization.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/post-release-env-reset.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-closeout-evidence.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-scope-confirmation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/tag-and-prod-pipeline-gate.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/test-scope-prompt.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/watcher-discipline.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/SKILL.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/comment-safe-release-doc.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-evidence-workflow.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-testing-scope-section.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/SKILL.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/SKILL.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/prd-composition-contract.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/requirement-closure-contract.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/security-four-questions.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/SKILL.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +337 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/analysis-parse-fix-test-challenge-replay.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/attribution-verification.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/bootstrap-slim-c3-obligation-table.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/coverage-exhaustion-traps.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/description-authoring.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +507 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/eval-routing.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/evidence-card-template.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/example-domain-preselect.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-lifecycle-handoff.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +286 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/incident-postmortem-extraction.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/l0-l1-l2-routing.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/online-skill-review.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/parallel-stack-references-pattern.md +164 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/r0-leakage-audit.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/recurring-anti-patterns-checklist.md +320 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-feedback-mining.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-finding-standards.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-rubric.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/rule-consolidation.md +118 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/skill-listing-budget.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +254 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +658 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/two-source-extraction-pattern.md +167 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-judgment-extraction.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-routing-map.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/validation-and-landing.md +180 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +1452 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-evidence-card-leak.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-mr-target-freshness.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-size-budget.sh +488 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-sync-pointers.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-golden-trace.rb +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-health.rb +327 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing-bank.rb +401 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing.rb +248 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/generic-r0-leak-scan.sh +282 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/governing-chain-diff.py +321 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +964 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb +708 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/skill-behavior-eval.py +540 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-lifecycle.rb +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-pending-status.rb +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh +829 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_impact_chain_refscripts.sh +1203 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_r0_status.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_register_pending_exclusion.sh +137 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_route_drift.sh +377 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_size_budget.sh +833 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_skill_catalog.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_source_register_lifecycle.sh +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_mr_target_freshness.sh +261 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_sync_pointers.sh +538 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh +154 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_grader_diagnostics.sh +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_surface_binding.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_prose_target.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_generic_r0_leak_scan.sh +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_git_identity_predicate_gate.sh +243 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_governing_chain_diff.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_dateless_host.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_resolution.sh +724 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_wiring.sh +414 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_regression_runner_registration.sh +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_bank_integrity.sh +205 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_pointer_integrity.sh +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_credential_cwd.sh +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_cross_refs.sh +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_root_depth.sh +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate-skill.sh +257 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/input-state-machines.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/streaming-rich-output.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/terminal-side-channels.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/SKILL.md +408 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/bitable-setup.md +573 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/README.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/github-actions.yml +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/gitlab-ci.yml +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/jenkins.Jenkinsfile +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/classical-test-design-techniques.md +279 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/gen_report.py +2807 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/makefile-template.md +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/report-config-schema.md +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/run_pytestless.py +475 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/source-to-case-workflows.md +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-marker-conventions.md +316 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-review-and-prioritization.md +145 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/AGENTS.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.dart +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.go +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.py +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.ts +285 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/test_gen_report.py +2144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/update-lifecycle.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +212 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/ci-fixtures-and-flake-control.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/client-runtime-test-matrices.md +50 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/data-and-workflow-testing.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/design-closed-contract-oracles.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/e2e-real-flow-testing.md +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/fitness-functions.md +240 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/integration-contract-testing.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/non-functional-specialized-scenarios.md +296 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/rd-testing-standard-template.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/run-killing-mutation-walk.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/scenario-testing.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/source-evidence-map.md +59 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/structured-tc-input-translation.md +67 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-code-authoring-patterns.md +392 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-data-and-determinism.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-topology-and-commands.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/unit-testing.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/vendored-contract-drift-checklist.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/verify-enforcement-mechanisms.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.py +140 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.test.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.py +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.test.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.go +198 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.test.sh +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/test_mutation_backup_recipe.sh +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +184 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/comment-safe-feishu.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/cross-model-co-review.md +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/delivery-face-closeout.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/doc-charter-first.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/session-vantage-leakage.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/complex-workspace-patterns.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/embedded-h5-in-host.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/react-architecture.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/source-evidence-map.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-quality-release.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-ui-quality.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/SKILL.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/references/shared-branch-rebase.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/AGENTS.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_status.sh +207 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_sweep.sh +481 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-status.sh +325 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-sweep.sh +245 -0
- package/dist/assets/release.json +2797 -0
- package/dist/claude-adapter.d.ts +9 -0
- package/dist/claude-adapter.js +240 -0
- package/dist/cli-worker.d.ts +1 -0
- package/dist/cli-worker.js +32 -0
- package/dist/cli.d.ts +22 -0
- package/dist/cli.js +214 -0
- package/dist/codex-host.d.ts +30 -0
- package/dist/codex-host.js +162 -0
- package/dist/fs-safe.d.ts +21 -0
- package/dist/fs-safe.js +241 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.js +135 -0
- package/dist/opencode-adapter.d.ts +10 -0
- package/dist/opencode-adapter.js +416 -0
- package/dist/operations.d.ts +3 -0
- package/dist/operations.js +956 -0
- package/dist/paths.d.ts +20 -0
- package/dist/paths.js +4 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.js +1 -0
- package/dist/unified.d.ts +4 -0
- package/dist/unified.js +64 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +5 -0
- package/package.json +35 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Staged Review Contract
|
|
2
|
+
|
|
3
|
+
The controller has three modes:
|
|
4
|
+
|
|
5
|
+
- `review`: initial independent external review;
|
|
6
|
+
- `challenge`: a focused adversarial external round;
|
|
7
|
+
- `complete`: a local deep-self-review checkpoint that calls no reviewer.
|
|
8
|
+
|
|
9
|
+
Explore/build may configure `challenge_budget=0..4`; release/high-risk requires
|
|
10
|
+
at least one challenge. The initial review consumes Agent round 1, so total
|
|
11
|
+
Agent-autonomous external review is at most five rounds. Human-requested review
|
|
12
|
+
is outside this budget and must be attributed by the consuming trusted platform.
|
|
13
|
+
The budget is a ceiling, not a quota: after a clean tracked challenge, local
|
|
14
|
+
`complete` may close the chain early. It preserves unused-round count but sets
|
|
15
|
+
`autonomous_review_allowed=false`; release/high-risk still requires at least one
|
|
16
|
+
challenge before this early close is eligible.
|
|
17
|
+
|
|
18
|
+
## Plan and owner binding
|
|
19
|
+
|
|
20
|
+
The plan is optional for `review` and `challenge` and required for `complete`.
|
|
21
|
+
When supplied, the bounded UTF-8 plan contains exactly intent, acceptance,
|
|
22
|
+
self-review, and evidence. When omitted for review/challenge, the controller
|
|
23
|
+
synthesizes a schema-valid derived default (generic intent/acceptance/evidence
|
|
24
|
+
plus self-review rows covering the required concerns) and stamps
|
|
25
|
+
`review_plan_source=derived-default` on the result so it is never mistaken for a
|
|
26
|
+
hand-attested plan (`review_plan_source=implementer-supplied` otherwise).
|
|
27
|
+
Self-review accumulates stage concerns: explore covers correctness and
|
|
28
|
+
safety; build adds failure paths, tests, and compatibility; release adds rollout
|
|
29
|
+
and operations. High-risk input raises depth to release and adds
|
|
30
|
+
`high_risk_boundary`.
|
|
31
|
+
|
|
32
|
+
Each self-review row may name a direct sibling skill. Omission selects the
|
|
33
|
+
`code-review` baseline. The controller also derives owners deterministically
|
|
34
|
+
from changed `skills/<name>/` paths, test paths, and supported source extensions.
|
|
35
|
+
With an implementer-supplied plan, every derived owner must have a self-review
|
|
36
|
+
row before provider execution, and missing owners are incomplete self-review. A
|
|
37
|
+
derived-default plan carries no implementer attestation to check against, so it
|
|
38
|
+
waives that pre-attestation requirement while still selecting and loading the
|
|
39
|
+
derived owners for the reviewer. The controller binds regular `SKILL.md` plus
|
|
40
|
+
recursive `references/**/*.md` and reports
|
|
41
|
+
`owner_selection_source=controller-derived+implementer-declared` when derivation
|
|
42
|
+
participates. Linked, inaccessible, or non-regular owner/controller content is a
|
|
43
|
+
terminal local integrity error.
|
|
44
|
+
|
|
45
|
+
Owner-aware wrappers receive only the canonical registry root, selected names,
|
|
46
|
+
and their frozen hashes. They verify that binding, use the already-installed
|
|
47
|
+
CCL skill registry through each client-native mechanism, and explicitly
|
|
48
|
+
name the selected owners: Claude `--plugin-dir`, Kimi `--skills-dir`, OpenCode
|
|
49
|
+
`skills.paths`, or Codex `$skill-name`. Skill bodies are never copied into the
|
|
50
|
+
review profile or prompt. A client unable to establish this native binding is
|
|
51
|
+
ineligible for the owner-aware lane. Each successful owner-aware wrapper adds a
|
|
52
|
+
post-parse `native_skill_binding=established` receipt; absence fails closed
|
|
53
|
+
before the controller claims usage. Receipt injection itself is part of the
|
|
54
|
+
trusted wrapper path: a local serialization or output failure is terminal
|
|
55
|
+
`local_tool_failure`, never an empty or apparently successful result. After a
|
|
56
|
+
valid verdict, `reviewed_skills` contains only the selected owners passed
|
|
57
|
+
through the client-native invocation;
|
|
58
|
+
the general `code-review` baseline remains in `selected_skills` but is not
|
|
59
|
+
reported as natively invoked. The installed registry may remain visible. For
|
|
60
|
+
Codex, an independently updated installed package must exist and pass the same
|
|
61
|
+
safe-package validation, but its bytes need not equal an older candidate
|
|
62
|
+
branch; `$skill-name` binds the selected identity. The frozen source hash still
|
|
63
|
+
binds controller routing and review-chain reuse, not the host release version.
|
|
64
|
+
For Claude, the public init surface must register the `ccl-skills` plugin while
|
|
65
|
+
the wrapper separately verifies the selected package hashes and explicitly
|
|
66
|
+
names the owners. Current init does not enumerate the selected plugin skills or
|
|
67
|
+
commands; plugin registration is binding evidence, not proof that the model
|
|
68
|
+
read a skill body. If init begins enumerating ccl-registry skills or
|
|
69
|
+
`ccl-skills:` commands, every selected owner must appear in those lists or
|
|
70
|
+
the wrapper fails closed; built-in entries alone do not imply plugin enumeration.
|
|
71
|
+
An owner name that collides with an audited Claude built-in is not representable
|
|
72
|
+
on this surface and is rejected before a binding receipt.
|
|
73
|
+
`skill_usage_evidence` records
|
|
74
|
+
native explicit invocation with `observed=false`; only a public client
|
|
75
|
+
event/export may populate `observed_skill_usage`. Reviewer prose and private
|
|
76
|
+
client databases do not count as observation evidence.
|
|
77
|
+
|
|
78
|
+
For every client, `native_skill_binding=established` means the wrapper verified
|
|
79
|
+
the frozen selected packages and emitted that client's native explicit-invocation
|
|
80
|
+
syntax. It does not assert internal activation; that stronger claim belongs only
|
|
81
|
+
in `observed_skill_usage`.
|
|
82
|
+
|
|
83
|
+
This binding check also applies to direct wrapper calls. If a native-installed
|
|
84
|
+
profile selects owners but the matching registry root or owner arguments are
|
|
85
|
+
omitted, every wrapper returns terminal `binding_mismatch` before inference.
|
|
86
|
+
|
|
87
|
+
Owner-aware Claude requires `--safe-mode` with the explicit `--plugin-dir`, so
|
|
88
|
+
ambient customizations stay disabled while the full installed plugin supplies
|
|
89
|
+
skills and normal OAuth/keychain authentication remains available. The wrapper
|
|
90
|
+
must not add `--bare`, because that flag disables the ordinary OAuth/keychain
|
|
91
|
+
path and turns a logged-in CLI into an auth failure unless a separate API key is
|
|
92
|
+
injected.
|
|
93
|
+
The Claude wrapper also validates the installed plugin manifest before launch:
|
|
94
|
+
its skills entrypoint must be `./skills`, and top-level agents, commands, hooks,
|
|
95
|
+
or MCP servers make the plugin ineligible for this bounded review lane.
|
|
96
|
+
|
|
97
|
+
Wrappers keep an explicit selected-owner count instead of testing empty Bash
|
|
98
|
+
arrays under `set -u`, preserving the no-owner lane on Bash 3.2.
|
|
99
|
+
|
|
100
|
+
## Agent review chain
|
|
101
|
+
|
|
102
|
+
Multi-round Agent automation supplies `review_chain_id`, a contiguous
|
|
103
|
+
`autonomous_review_index` in `1..5`, and every earlier result through ordered
|
|
104
|
+
`--prior-review-result-file` arguments. Prior rounds may contain findings and
|
|
105
|
+
older candidate hashes; they remain consumed. Candidate edits, commits, plan
|
|
106
|
+
refreshes, mode changes, and renamed invocations do not reset Agent authority.
|
|
107
|
+
An initial `review` with positive challenge capacity must start this chain at
|
|
108
|
+
index 1; an untracked initial review is single-round and therefore uses budget 0.
|
|
109
|
+
|
|
110
|
+
The chain binds task scope, candidate identity per round, result hashes, mode,
|
|
111
|
+
status, challenge focus, controller, and selected owners. The opaque
|
|
112
|
+
`review_scope_sha256` always hashes normalized intent, acceptance, stage/depth,
|
|
113
|
+
risk tags, and challenge budget; chain identity is validated separately. Every
|
|
114
|
+
result also carries the canonical `review_scope` object that digest is taken
|
|
115
|
+
over — intent and acceptance appear only as `intent_sha256` /
|
|
116
|
+
`acceptance_sha256`, never as raw plan text, because results are logged and
|
|
117
|
+
archived independently of the plan. A prior result is accepted only when its
|
|
118
|
+
recorded `review_scope` reproduces its own `review_scope_sha256` and that digest
|
|
119
|
+
matches the current scope, so copying a digest onto a differently-scoped result
|
|
120
|
+
no longer passes. This binding proves internal consistency, not authority: prior
|
|
121
|
+
result files are unauthenticated, so a caller able to rewrite an entire envelope
|
|
122
|
+
consistently is still accepted, per this gate's trusted-local-agent trust model.
|
|
123
|
+
Envelope `schema_version` is `3`; a legacy `2` envelope predates the recorded
|
|
124
|
+
scope and is rejected, which requires restarting an in-flight chain. Every
|
|
125
|
+
prior round must retain the same controller digest, owner-selection source,
|
|
126
|
+
selected owner names, and selected-owner digest. Missing, substituted,
|
|
127
|
+
inconclusive, reordered, renamed-chain, or fourth-round input fails before any
|
|
128
|
+
provider runs. Scope drift returns `review_scope_changed` and requires deep
|
|
129
|
+
self-review plus explicit task reframing; it does not silently create a new
|
|
130
|
+
Agent budget. An untracked challenge is one-off advisory evidence; it cannot
|
|
131
|
+
enter a later Agent round or satisfy the local completion checkpoint.
|
|
132
|
+
|
|
133
|
+
The controller is stateless and prevents accidental/cooperative resets only. A
|
|
134
|
+
trusted host or platform must retain the ledger when hostile local callers are in
|
|
135
|
+
scope; a repository-local counter cannot authenticate human authority.
|
|
136
|
+
|
|
137
|
+
## Mechanical self-review gate
|
|
138
|
+
|
|
139
|
+
Every stable result that reaches the gate's composite stage includes
|
|
140
|
+
controller-owned `self_review_gate` (a freeze-stage argument-validation
|
|
141
|
+
envelope — for example `invalid_input`, or the argument-combination variant of
|
|
142
|
+
`completion_checkpoint_invalid` raised before profile freeze — carries
|
|
143
|
+
`schema_version` but may omit `self_review_gate`, `review_state`, `stage`, and
|
|
144
|
+
`attempts`; consumers must not read those fields unconditionally on every
|
|
145
|
+
exit-2 result):
|
|
146
|
+
|
|
147
|
+
- `required_triggers`: outstanding deep-self-review checkpoints;
|
|
148
|
+
- `satisfied_triggers`: checkpoints validated by the current plan;
|
|
149
|
+
- `blocks`: only the next external review and/or a completion claim;
|
|
150
|
+
- `allowed_next_actions`: productive work that remains legal.
|
|
151
|
+
|
|
152
|
+
The controller fires at these boundaries: before external review, findings
|
|
153
|
+
returned, candidate change in a tracked chain, risk/scope escalation, post-budget
|
|
154
|
+
checkpoint, and before a completion claim. Findings never produce a blind
|
|
155
|
+
review-fix-review loop: they block another reviewer call, return to implementer
|
|
156
|
+
triage, and still allow implementation, tests, and independent runnable work.
|
|
157
|
+
|
|
158
|
+
A passed final external round returns
|
|
159
|
+
`next_action=deep_self_review_before_completion` and remains
|
|
160
|
+
`completion_gated=true`. `--mode complete` accepts one exact-candidate passed
|
|
161
|
+
review result plus the current self-review plan, calls no reviewer, rejects stale
|
|
162
|
+
candidate/controller/owner bindings and changed intent or acceptance, while
|
|
163
|
+
allowing refreshed self-review conclusions and evidence, and is the Agent path to
|
|
164
|
+
`completion_gated=false`. Its result preserves the verified chain id, scope,
|
|
165
|
+
round index, prior-result hashes, and prior challenge focuses. It is not a human
|
|
166
|
+
waiver or merge authorization.
|
|
167
|
+
|
|
168
|
+
## Human and failure boundary
|
|
169
|
+
|
|
170
|
+
Only an external authenticated platform action may prove human request, stop,
|
|
171
|
+
resume, waiver, commit, or merge authority. A `review_waiver` clears only the
|
|
172
|
+
review-process gate. A distinct exact-candidate `merge_authorization` is the
|
|
173
|
+
human's final decision: CI may keep running and reporting every failed/pending
|
|
174
|
+
gate, but none may block that authorized merge. Report
|
|
175
|
+
`merge_authorized_by_human` / `failed_but_human_overridden`, never `passed`.
|
|
176
|
+
|
|
177
|
+
Provider/input/integrity failures stop that reviewer lane, not the whole task.
|
|
178
|
+
Their stable action is `stop_reviewer_lane`, never the ambiguous `stop`.
|
|
179
|
+
Budget exhaustion likewise stops only automatic reviewer calls. Continue local
|
|
180
|
+
fixes, self-review, tests, and independent work; park only decision-dependent
|
|
181
|
+
work. Enter `awaiting_human` only when no independent runnable work remains.
|
|
182
|
+
|
|
183
|
+
The current result envelope is schema 3. The controller bounds cumulative reviewer-lane execution with `--total-timeout`
|
|
184
|
+
(default 2400 seconds, accepted range 5..3600). Setup time reduces the budget,
|
|
185
|
+
and git preflight subprocesses share its deadline; direct filesystem reads
|
|
186
|
+
remain subject to the host's outer timeout. Each client receives the smaller of the requested per-invocation
|
|
187
|
+
timeout and `(remaining total budget - ten controller seconds) / maximum mode
|
|
188
|
+
invocations`; review reserves two invocations and challenge one. If that
|
|
189
|
+
allowance is below five seconds, the gate returns inconclusive `gate_timeout`
|
|
190
|
+
and starts no later client. Each wrapper lane is separately bounded by its
|
|
191
|
+
mode-adjusted allowance plus controller headroom. A lane timeout gets bounded
|
|
192
|
+
TERM/KILL/final-reap cleanup and may cascade while total budget remains; killed
|
|
193
|
+
or partial output is never a verdict. A verdict that arrives after total expiry
|
|
194
|
+
is cleared; prior findings remain only in diagnostic `unbound_findings`, which
|
|
195
|
+
must not be treated as a verdict. Before setup overhead, the practical minimum that can
|
|
196
|
+
start a lane is 21 seconds for review and 16 for challenge; smaller accepted
|
|
197
|
+
values intentionally fail closed.
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Wait Policy Details, Auth Pitfalls, And CLI Capability Notes
|
|
2
|
+
|
|
3
|
+
Load this file when a wrapper run times out, returns an auth-path failure,
|
|
4
|
+
or when maintaining the wrapper's CLI-flag adoption. The hard rules —
|
|
5
|
+
timeout/no-output is inconclusive and never approval, auth failures are
|
|
6
|
+
classified by evidence, raw `claude -p` never substitutes for the wrapper —
|
|
7
|
+
live in `SKILL.md`; this file holds the operational detail.
|
|
8
|
+
|
|
9
|
+
## Wait Policy
|
|
10
|
+
|
|
11
|
+
Do not use a 30 second timeout as a review failure.
|
|
12
|
+
|
|
13
|
+
- Around 30s with no output: wait.
|
|
14
|
+
- Around 60s with no output: treat as a possible slow or broad review, not approval. Keep waiting if the process is still active.
|
|
15
|
+
- For narrow diff reviews, allow roughly 2-3 minutes before calling it stuck.
|
|
16
|
+
- For broad product/architecture reviews, allow roughly 5 minutes or narrow the prompt.
|
|
17
|
+
- Never treat no output as "no findings."
|
|
18
|
+
|
|
19
|
+
Host execution APIs may yield before the command exits. A response containing a
|
|
20
|
+
live `session_id`, `cell_id`, or equivalent execution handle is a progress
|
|
21
|
+
response even when its current output string is empty. Resume the same handle
|
|
22
|
+
with the host's polling primitive (`write_stdin`/poll for a unified exec session,
|
|
23
|
+
or `wait` for a yielded cell) until it reports a terminal exit. Do not start a
|
|
24
|
+
second reviewer, enter fallback, or call the partial chunk "empty reviewer
|
|
25
|
+
output" while that handle or its child process is alive. If orchestration loses
|
|
26
|
+
the handle, the lane is infrastructure-inconclusive/manual-review-required and
|
|
27
|
+
no replacement or fallback may be started or credited. The original PID/process
|
|
28
|
+
tree and wrapper-owned result artifacts may be inspected for diagnosis only;
|
|
29
|
+
they cannot reconstruct the missing terminal result or authorize continuation.
|
|
30
|
+
For every yielded run, the caller's lane evidence must record the handle type,
|
|
31
|
+
an opaque host transcript/tool-call reference (never copy a credential-like raw
|
|
32
|
+
handle into shared evidence), and terminal exit status. If the handle was lost,
|
|
33
|
+
record the lost state, any diagnostic process-tree or wrapper artifacts, and
|
|
34
|
+
that fallback was unavailable.
|
|
35
|
+
This is a procedural host-workflow obligation, not a controller-owned field:
|
|
36
|
+
the outer host allocates the handle after launching the gate, so the inner gate
|
|
37
|
+
cannot observe or authenticate it. Hosts that need mechanical enforcement must
|
|
38
|
+
provide their own trusted execution adapter; this repository preserves the
|
|
39
|
+
contract and evidence shape without claiming that enforcement.
|
|
40
|
+
|
|
41
|
+
The wrapper default timeout is 600 seconds per formal invocation, matching the
|
|
42
|
+
accepted maximum. Measured single-lane costs on this repository's own review
|
|
43
|
+
diffs were roughly 89, 247, and 419 seconds, so a smaller default silently
|
|
44
|
+
converts a working reviewer into an inconclusive timeout; because a timeout is
|
|
45
|
+
cascade-eligible, spending wall-clock is recoverable while a premature timeout
|
|
46
|
+
quietly loses that lane's verdict. Lower it explicitly with `--timeout` when a
|
|
47
|
+
fast bound matters more than lane coverage. It makes no separate model behavior-probe request. Challenge makes one invocation; review and consult may make up to two only through their existing bounded result-recovery paths. The wrapper rejects timeout values below 5 seconds and clamps values above 600 seconds to 600 seconds. The bound is per invocation, not per wrapper run: an outer timeout must cover `timeout` for challenge and up to `2 * timeout` for review or consult, and must never kill the wrapper and then treat the killed output as success. With defaults, allow about ten minutes for challenge and up to twenty minutes for review or consult. If the command is still running but silent, poll the same execution handle again.
|
|
48
|
+
|
|
49
|
+
The controller separately enforces a cumulative reviewer-lane budget.
|
|
50
|
+
`--total-timeout` defaults to 2400 seconds and accepts 5 to 3600. Its clock
|
|
51
|
+
starts before packet/profile setup, so setup consumes the budget. Git preflight
|
|
52
|
+
subprocesses use the remaining deadline; direct filesystem reads are not
|
|
53
|
+
preempted, so the host's outer timeout remains responsible for stuck file I/O. Before each client attempt it
|
|
54
|
+
passes `min(--timeout, floor((remaining total seconds - 10) / invocation count))`
|
|
55
|
+
to the wrapper. The invocation count is two for review and one for challenge,
|
|
56
|
+
matching each wrapper's maximum recovery path while reserving ten controller
|
|
57
|
+
seconds for wrapper overhead, cleanup, and result handling. An allowance below five seconds cannot
|
|
58
|
+
satisfy the wrapper contract, so the gate returns inconclusive `gate_timeout`
|
|
59
|
+
without starting another client. The
|
|
60
|
+
practical minimum before setup overhead is 21 total seconds for review and 16
|
|
61
|
+
for challenge; smaller accepted values intentionally produce the terminal
|
|
62
|
+
fail-closed result. The controller bounds each wrapper lane by the smaller of
|
|
63
|
+
the remaining total budget and its mode-adjusted invocation allowance plus the
|
|
64
|
+
ten-second headroom. On lane expiry it
|
|
65
|
+
terminates the process group with TERM, waits one second, then uses KILL if
|
|
66
|
+
needed, and bounds final descriptor closure and reap. Cleanup is bounded but may
|
|
67
|
+
finish just after the requested deadline. Partial or killed output is not
|
|
68
|
+
parsed as a verdict. A lane timeout may cascade only when the cumulative clock
|
|
69
|
+
still leaves the next client its minimum allowance; total exhaustion stops the
|
|
70
|
+
lane. With defaults, the
|
|
71
|
+
cumulative reviewer-lane bound is about 40 minutes plus cleanup/launch overhead,
|
|
72
|
+
instead of the prior four-lane worst case of about 80 minutes. Callers needing a
|
|
73
|
+
tighter host bound should lower `--total-timeout` and set their outer runner
|
|
74
|
+
above that value plus setup and cleanup overhead. Process-group termination
|
|
75
|
+
covers the wrapper and descendants that remain in its session; a descendant that deliberately creates a new session can
|
|
76
|
+
escape signaling, but cannot keep the gate waiting or supply a verdict.
|
|
77
|
+
|
|
78
|
+
Any timeout is an inconclusive result, not an empty-finding result. The final status must say `inconclusive` with the timeout reason so downstream review or merge state cannot treat the missing challenge as approval. If total expiry invalidates a result that already carried findings, the gate clears verdict-bearing fields and may preserve those findings only as diagnostic `unbound_findings`; downstream policy must not promote that field into a verdict.
|
|
79
|
+
|
|
80
|
+
The wrapper traps TERM/INT and emits an inconclusive JSON result when the shell gives it a recoverable termination signal. SIGKILL and host crashes cannot be trapped, so callers must still treat non-zero exit without valid JSON as inconclusive/manual-review-required, never as success.
|
|
81
|
+
|
|
82
|
+
### OpenCode native-skill timeout diagnostics
|
|
83
|
+
|
|
84
|
+
An OpenCode review timeout after an owner-aware run has emitted stream events is
|
|
85
|
+
reported as `reason: review_native_skill_stream_timeout` while retaining the
|
|
86
|
+
existing `reason_code: timeout` category and cascade eligibility. The specific
|
|
87
|
+
reason is evidence-scoped: selected native owner skills plus a valid event with
|
|
88
|
+
a non-empty session identifier and structured stream `part.type`. Empty output,
|
|
89
|
+
non-JSON bytes, and session creation without model-step progress remain the
|
|
90
|
+
generic `review_timeout`; the wrapper must not infer a native-skill stall from
|
|
91
|
+
the requested profile alone.
|
|
92
|
+
|
|
93
|
+
On a best-effort basis, an OpenCode review-run timeout attaches a bounded
|
|
94
|
+
`timeout_diagnostic` summary:
|
|
95
|
+
stage, selected-skill count, capped event/log observations and byte counts,
|
|
96
|
+
whether a session identifier was observed, and explicit scan-truncated flags. It
|
|
97
|
+
contains no event text, stderr text, log text, session identifier, prompt, diff,
|
|
98
|
+
credential, or model reply, so it can survive the private runtime cleanup
|
|
99
|
+
without widening the ordinary result's evidence class.
|
|
100
|
+
|
|
101
|
+
For a deeper local investigation, pass `--diagnostic-dir` with an existing,
|
|
102
|
+
absolute, writable, non-symlink directory owned by the invoking user and not
|
|
103
|
+
group- or world-writable, with no extended ACL. Only on a review-run timeout,
|
|
104
|
+
the wrapper creates one mode-0700 child and copies the public event/export
|
|
105
|
+
captures, their stderr captures, the validated agent-boundary output, and regular
|
|
106
|
+
OpenCode log files as mode-0600 files. It never copies `auth.json`, credential
|
|
107
|
+
links, the wrapper prompt file, or the frozen diff as standalone files; event,
|
|
108
|
+
export, and log content may still contain candidate or model data. The result
|
|
109
|
+
reports only the child directory name (the caller already owns the parent) and marks it
|
|
110
|
+
`contains_sensitive_review_data:true`; the caller owns access, retention,
|
|
111
|
+
redaction, and deletion. Credential files are not copied, but captured stderr
|
|
112
|
+
and logs may themselves contain API keys, OAuth material, or other secrets; the
|
|
113
|
+
caller must inspect and redact them before sharing. Files larger than 5 MiB, or
|
|
114
|
+
larger than the remaining 20 MiB copied-payload budget, are skipped entirely;
|
|
115
|
+
at most 5000 runtime-log-tree entries and 1000 regular log files are inspected
|
|
116
|
+
for copying. The manifest and result report only that artifacts or logs were
|
|
117
|
+
skipped, not a per-file list. If summary
|
|
118
|
+
enrichment fails, the wrapper returns the original inconclusive timeout result
|
|
119
|
+
and removes any unreported diagnostic child. No diagnostic child is created on
|
|
120
|
+
success.
|
|
121
|
+
Removal depends on the wrapper's exit and signal handlers. A SIGKILL or host
|
|
122
|
+
crash can strand an unnamed mode-0700 `opencode-review-timeout.*` child, so the
|
|
123
|
+
caller must periodically sweep unreported entries in the diagnostic parent.
|
|
124
|
+
Every successfully enriched review-run timeout also carries a
|
|
125
|
+
`diagnostic_artifacts` object reporting `requested` and `retained`. Requested
|
|
126
|
+
retention that cannot be completed reports `error:retention_failed` with no
|
|
127
|
+
directory name. Successful retention additionally reports `directory_name`,
|
|
128
|
+
`contains_sensitive_review_data`, `credential_files_copied`, `retention_owner`,
|
|
129
|
+
`artifacts_truncated`, and `logs_truncated`.
|
|
130
|
+
Raw artifacts are diagnosis evidence only and cannot reconstruct a missing
|
|
131
|
+
terminal verdict or authorize fallback, merge, or completion.
|
|
132
|
+
|
|
133
|
+
## Auth And CLI Pitfalls
|
|
134
|
+
|
|
135
|
+
On this machine, Claude Code and Kimi Code may be logged in locally while a
|
|
136
|
+
sandboxed child cannot reach their host-owned auth paths. Classify auth failures
|
|
137
|
+
by evidence, not by one invocation path.
|
|
138
|
+
|
|
139
|
+
Kimi has one additional exact false-negative shape: before any model output,
|
|
140
|
+
preparing the OAuth refresh lock fails with `EPERM` or `EACCES` through the
|
|
141
|
+
private runtime-home binding. Preserve the whole source `credentials/` and
|
|
142
|
+
`oauth/` bindings—never copy or disable that lock—and use the same single
|
|
143
|
+
`--host-remediation-attempted` rerun described below. A second lock-path failure
|
|
144
|
+
is `auth_unavailable_after_host_retry` and may cascade; unrelated exit-1 errors
|
|
145
|
+
remain fail-closed.
|
|
146
|
+
|
|
147
|
+
Codex has a separate sandbox-path false negative: its in-process app-server may
|
|
148
|
+
fail before inference with exact `Operation not permitted` evidence while both
|
|
149
|
+
the event stream and result file are empty. The first occurrence is
|
|
150
|
+
`host_path_unavailable` and requests the same single host rerun.
|
|
151
|
+
Only the marked rerun may classify a repeat as
|
|
152
|
+
`host_path_unavailable_after_host_retry` and continue to another approved
|
|
153
|
+
client; unrelated Codex exit-1 failures remain fail-closed.
|
|
154
|
+
|
|
155
|
+
Use this bounded host-remediation procedure for either failure class:
|
|
156
|
+
|
|
157
|
+
1. For Claude, run `claude auth status` first. If it reports logged in, classify the failed invocation as an auth-path false negative; use `claude --version` only to confirm the binary/version when auth status is unavailable or fails.
|
|
158
|
+
2. For Codex, require the wrapper's exact pre-inference app-server `EPERM` classification with empty event/result evidence. Any non-empty inference evidence or broader exit-1 remains terminal.
|
|
159
|
+
3. Confirm a real host/outside-sandbox runner is available, such as an approved unrestricted shell path in the current Codex session. Without it, keep the gate at `next_action=host_retry`; do not reinterpret the path failure as provider unavailability.
|
|
160
|
+
4. Rerun the same `review_gate.sh` command through that host path with `--host-remediation-attempted`, preserving the frozen packet or unchanged base/paths, mode, focus, timeout, implementer family, and egress approval. The gate passes the bounded marker to the affected wrapper; it does not elevate itself.
|
|
161
|
+
5. If the host rerun returns `auth_unavailable_after_host_retry` or `host_path_unavailable_after_host_retry`, the gate may try the next client in the effective `CODE_REVIEW_CLIENT_ORDER`, subject to the egress secret-scan tripwire (a clean packet egresses automatically; a scan hit needs `--allow-fallback-egress`). If no fallback is valid, the lane remains inconclusive. Do not manually invoke raw provider commands for review/challenge as a fallback.
|
|
162
|
+
6. For Claude only, tell the user to log in again only if `claude auth status` also reports logged out, or the same wrapper command fails from the host/local login path. Never repeat host remediation for either client.
|
|
163
|
+
|
|
164
|
+
Do not manually substitute a raw `claude -p` command for review/challenge after an auth false negative. Raw commands are easy to leave without the wrapper's outer timeout, JSON schema validation, untracked-file handling, and fail-closed classification; a hung or prose-only raw run remains inconclusive. The only exception is wrapper debugging in the same turn: record the wrapper bug being reproduced, edit `scripts/claude_review.sh` or its parser/tests, and do not report the raw run as a review result.
|
|
165
|
+
|
|
166
|
+
For challenge mode, require `--tools ""` and the included diff packet as the whole review surface; this keeps adversarial passes bounded and avoids silent repo exploration hangs. If the installed Claude CLI does not advertise `--tools`, challenge exits inconclusive and must not be reported as passing or as no findings. The formal invocation's own stream-json init must prove the exact tool surface and empty inherited MCP/skill/command/plugin surfaces before its result can be accepted. A permission denial, unexpected tool use, missing init evidence, or schema drift fails closed; auth/quota evidence remains separately classified. If the challenge run hits an auth false negative, do not spend another Claude invocation inside the same wrapper run; report inconclusive and rerun once from the host path (optionally with `--direct`). Review mode uses the same no-tool, diff-packet-only surface. Repository consult uses `--tools Read,Grep,Glob`, `--permission-mode plan`, and `--add-dir <REPO_ROOT>`; treat those read tools as workspace scoping, not as proof that absolute-path reads are impossible, keep sensitive/harness paths outside `<REPO_ROOT>`, and fail closed if the exact positive read-only surface is unavailable. Prompt-only consult uses `--tools ""` and no `--add-dir`; it requires the needed evidence pasted into `--extra` (the legacy `--allow-prompt-only-advisory` opt-in is accepted for back-compat but no longer required), and the final JSON carries `status: "evidence_only"`, `consult_scope: "prompt-only"`, `advisory: true`, `untrusted_evidence: true`, and `gate_eligible: false` as the guard. Consult findings use scope-specific statuses: repository findings use `status: "findings"` and prompt-only findings use `status: "prompt_only_findings"`; all consult results exit `2`, all consult statuses carry `gate_eligible:false`, and prompt-only findings still require controller-side verification before they affect a landing decision. The prompt boundary is not a sandbox.
|
|
167
|
+
|
|
168
|
+
Use `--no-session-persistence` for review, challenge, and prompt-only consult when `claude -p --help` advertises it. For no-tool modes (review, challenge, and prompt-only consult), use low effort when supported, because the prompt is otherwise prone to long silent reasoning. Do not enable `--json-schema` by hand for review evidence; the wrapper pairs it with `--output-format stream-json --verbose` when supported and enforces both the runtime init record and final result through its parsers. A bare `--json-schema` without structured capture can return prose or blank stdout. Model selection remains the user's Claude CLI default; the shared wrapper does not pass a model override. Avoid changing capture flags by hand, because some modes can use a different auth path.
|
|
169
|
+
|
|
170
|
+
## CLI Capability Notes
|
|
171
|
+
|
|
172
|
+
Current Claude Code CLIs expose capabilities that *could* harden this harness, but they are machine- and version-specific and several have fail-closed implications. These notes are **policy, not a recommendation to flip flags by hand**: a capability may be adopted only inside the wrapper, behind local help/version inspection plus fixture tests that prove the same fail-closed classification, schema validation, attribution, auth hygiene, and timeout semantics the wrapper already guarantees. This local inspection is not a model inference probe. None of this changes review *policy* — when dual-track (independent fact review + adversarial challenge) is required, the convergence standard, and the severity rubric + finding-quality bar are owned by `../skill-extraction-workflow/references/dual-track-review-gate.md` and `../skill-extraction-workflow/references/review-finding-standards.md` (sibling-skill paths, written relative to this skill's directory per repo convention); this skill owns the provider-neutral client invocation mechanics.
|
|
173
|
+
|
|
174
|
+
- **`--bare` (minimal mode), when advertised**: skips hooks, LSP, plugin sync, auto-memory, background prefetches, keychain reads, and `CLAUDE.md` auto-discovery (skills still resolve), and forces Anthropic auth to be `ANTHROPIC_API_KEY` (or `apiKeyHelper` via `--settings`) — OAuth and keychain are not read. It is therefore forbidden in the normal owner-aware wrapper path, which must preserve the user's existing OAuth/keychain login through `--safe-mode` plus explicit `--plugin-dir`. Two narrow, guarded uses remain outside that normal path:
|
|
175
|
+
- **Isolation**: it can suppress ambient context the Harness Exclusion section guards against — BUT only when every safety boundary the review depends on is wrapper-owned and independently enforced. Do not use `--bare` to skip hooks/plugins that themselves enforce safety (DLP, tool-deny, audit/logging, policy/model enforcement, org prompt boundaries); confirm none of the skipped mechanisms is a required control before relying on it. Skipping ambient noise is fine; skipping a guardrail is not.
|
|
176
|
+
- **Sandbox auth**: the host/OAuth rerun remains the PREFERRED remedy for the keychain false-negative. `--bare` + `ANTHROPIC_API_KEY` is a security-sensitive last resort, not a default, because it pushes a credential into exactly the sandbox/review path this skill treats as hostile. Allowed only if the wrapper injects an ephemeral, least-privilege key through a non-logged env path, never writes it to settings, prompt files, logs, or shell history, and treats missing safe-injection as inconclusive rather than exporting a long-lived key. Do not adopt `apiKeyHelper`/on-disk secret config unless the wrapper owns and validates it.
|
|
177
|
+
- **`--output-format stream-json --verbose` — ADOPTED as the default capture**: paired with `--json-schema` when local help advertises schema support and covered by fixture tests (`test_parse_review_json.sh`, `test_classify_envelope.sh`, and `test_parse_probe_result.sh`). The stream envelope is NOT the review schema, so `extract_payload` in `parse_review_json.py` unwraps `structured_output` (or the nested `result` JSON string) and rejects any envelope flagged by `is_error`, `subtype != success`, `api_error_status`, `permission_denials`, or a non-`completed` `terminal_reason`; `classify_envelope.py` turns those same fields into auth/quota/permission/error reasons. Never let the envelope's own success shape (for example `{"result": "...LGTM..."}`) be read as a passing review. The init record from this same formal stream is also the runtime tool-surface evidence; no separate model request is made.
|
|
178
|
+
- **`--fallback-model`, when advertised**: auto-switches when the default model is overloaded or not available (`--print` only). When the team has an approved pinned review model, silent fallback is forbidden unless the fallback target is also explicitly approved for this harness; an unexpected fallback makes the result inconclusive / manual-review-required, not pass or no-findings. Reporting the model used preserves attribution but not approval.
|
|
179
|
+
- **`--max-budget-usd`, when advertised**: caps spend per invocation, but budget exhaustion is an inconclusive output condition, not a clean stop — it can truncate generation into empty, partial, or tail-only output. The wrapper must detect a budget-limit stop reason / usage metadata where available; output produced under a hit or ambiguous cap is inconclusive. Never set a cap low enough to preempt the Output Validity rules or the Wait Policy above.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# skills/code-review/scripts Agent Contract
|
|
2
|
+
|
|
3
|
+
Scripts here provide bounded, provider-neutral review/challenge wrappers and
|
|
4
|
+
parsers for Claude, Kimi, OpenCode, and Codex.
|
|
5
|
+
|
|
6
|
+
Rules:
|
|
7
|
+
|
|
8
|
+
- Preserve no-tools posture and structured output validation. A malformed,
|
|
9
|
+
timeout, or inconclusive wrapper result is not a pass.
|
|
10
|
+
- **Never pin the parser to a CLI version's vocabulary.** `parse_probe_result.py`
|
|
11
|
+
gates on *shape*, not on field/value names: the isolation proof is the exact
|
|
12
|
+
`tools` allowlist plus the tool_use scan, which no init field can bypass.
|
|
13
|
+
Field-name and value whitelists were tried twice (`fast_mode_state`, then
|
|
14
|
+
`capabilities`) and both times a routine CLI release took every Claude lane
|
|
15
|
+
down while proving nothing. So: unknown init fields are tolerated when scalar
|
|
16
|
+
or empty-container, and `agents`/`capabilities` are list-of-strings checks
|
|
17
|
+
with no value vocabulary. Only `permissionMode` stays value-pinned (it widens
|
|
18
|
+
what the runtime may do with no tool added).
|
|
19
|
+
- **Keep unsafe *values* out of the schema-drift class.** An unrecognized shape
|
|
20
|
+
means this lane cannot verify isolation → fallback-eligible. A known field
|
|
21
|
+
carrying an unsafe value (`permissionMode: "bypassPermissions"`) is a breached
|
|
22
|
+
boundary → terminal. They report through different reasons and different
|
|
23
|
+
buckets (`unknown_fields` vs `unsafe_values`) precisely so a real privilege
|
|
24
|
+
escalation cannot inherit the drift class's softer `next_action`. Any new
|
|
25
|
+
value-pinned field goes in `unsafe_values`.
|
|
26
|
+
- When every Claude run goes inconclusive with "unrecognized surface-shaped init
|
|
27
|
+
field", the CLI added a NON-EMPTY list/dict under a name the parser does not
|
|
28
|
+
know — the one shape that could carry a new invocable surface. That reason is
|
|
29
|
+
fallback-eligible (`capability_missing`), not a terminal boundary violation,
|
|
30
|
+
so review routes to another client meanwhile. Recipe: (1) capture a normal
|
|
31
|
+
wrapper invocation and diff its formal review stream's init event against the
|
|
32
|
+
parser's known fields; do not add a separate inference probe; (2) decide
|
|
33
|
+
whether the new container is a model-invocable surface — if it is, it belongs
|
|
34
|
+
in the required-empty set, not the allowlist; (3) if it is host metadata, add
|
|
35
|
+
the name to `KNOWN_SAFE_INIT_METADATA_FIELDS` (or give it a shape check),
|
|
36
|
+
never a value whitelist; (4) add RED/GREEN fixtures to
|
|
37
|
+
`test_parse_probe_result.sh` and record the RED round in the slice's own plan
|
|
38
|
+
under `specs/` (see `specs/012-challenge-index-default/plan.md` under
|
|
39
|
+
"Test / register coverage" for the shape); (5) full dual-track before landing.
|
|
40
|
+
- **A fail-closed stop must carry the evidence that justifies it.** When a lane
|
|
41
|
+
refuses to cascade *because* the output may hold a real finding
|
|
42
|
+
(`concern_evidence`), a boolean plus a fixed reason string is not enough: the
|
|
43
|
+
operator is told a finding exists but not what it says, so the documented
|
|
44
|
+
reject-and-rerun remediation runs blind and a false positive is
|
|
45
|
+
indistinguishable from a real one. Emit a bounded, line-selected excerpt
|
|
46
|
+
(`concern_excerpt.py`) — matched lines only, never the raw verdict, which may
|
|
47
|
+
echo the packet and would widen the evidence row past the class a schema-valid
|
|
48
|
+
`findings` result already persists. Wrapper run dirs are deleted on exit and the
|
|
49
|
+
gate unlinks the frozen packet, so anything not in the emitted payload is gone;
|
|
50
|
+
the OpenCode timeout path may additionally retain only its explicitly requested,
|
|
51
|
+
curated private diagnostic copy under the contract in
|
|
52
|
+
`../references/timeout-auth-and-capabilities.md`.
|
|
53
|
+
`test_concern_excerpt.sh` is the firing path; keep new stop paths covered by it.
|
|
54
|
+
- **Timeout diagnostics separate portable summary from sensitive raw evidence.**
|
|
55
|
+
The ordinary payload may keep bounded counts/types/booleans needed to classify
|
|
56
|
+
a stall, but never raw event, log, prompt, diff, session-id, credential, or model
|
|
57
|
+
text. Raw OpenCode artifacts require an explicit private diagnostic directory,
|
|
58
|
+
restrictive permissions with no extended ACL, a sensitivity marker,
|
|
59
|
+
caller-owned retention, and a test proving credential bindings are excluded.
|
|
60
|
+
A requested owner profile alone
|
|
61
|
+
does not prove a native-skill stall: require positive structured stream-part
|
|
62
|
+
evidence or keep the generic timeout classification.
|
|
63
|
+
- Keep review and challenge lanes distinct; do not let one satisfy the other.
|
|
64
|
+
- Do not execute target-repo code or grant broad tools from the reviewer lane.
|
|
65
|
+
- Parser changes need tests with positive, finding, malformed, and inconclusive
|
|
66
|
+
cases.
|
|
67
|
+
- A recipe step here must never cite a repo path that does not exist in this repo — for the specs/ namespace that is now machine-checked and blocking — and a step whose target is absent is not a step, because a contributor cannot run it. Backticked paths in prose are invisible to `check-markdown-links.py`,
|
|
68
|
+
which resolves only Markdown inline-link destinations in tracked `*.md`; the
|
|
69
|
+
gap that leaves is now closed for one namespace by
|
|
70
|
+
`scripts/check-spec-references.py`, which runs in `make test` and CI and fails
|
|
71
|
+
when a backticked specs/ token does not resolve. Verify each cited path
|
|
72
|
+
resolves before landing, and when one is already dead, repoint it at what the
|
|
73
|
+
repo does rather than creating the missing target — back-filling it fabricates
|
|
74
|
+
evidence for a round nobody ran.
|
|
75
|
+
- **A path TEMPLATE is not written as a citation.** That checker has no
|
|
76
|
+
exemption: a backticked token beginning specs/ must resolve, full stop, because
|
|
77
|
+
the exemption that used to carve out angle-bracket shapes produced five
|
|
78
|
+
separate bypasses and was deleted. Write a shape by naming it without the
|
|
79
|
+
prefix and leaving the prefix in prose — a `<NNN>-<slug>/plan.md` file under
|
|
80
|
+
specs/ — or put it in a fenced block. Keep the backticks: an unbackticked angle
|
|
81
|
+
bracket is swallowed as an HTML tag when the Markdown renders.
|
|
82
|
+
|
|
83
|
+
Validation:
|
|
84
|
+
|
|
85
|
+
- `bash skills/code-review/scripts/test_classify_envelope.sh`
|
|
86
|
+
- `bash skills/code-review/scripts/test_concern_excerpt.sh`
|
|
87
|
+
- `bash skills/code-review/scripts/test_claude_review_probe.sh`
|
|
88
|
+
- `bash skills/code-review/scripts/test_parse_opencode_review.sh`
|
|
89
|
+
- `bash skills/code-review/scripts/test_parse_probe_result.sh`
|
|
90
|
+
- `bash skills/code-review/scripts/test_parse_review_json.sh`
|
|
91
|
+
- `bash skills/code-review/scripts/test_opencode_review_retry.sh`
|
|
92
|
+
- `bash skills/code-review/scripts/test_opencode_review_concurrency.sh`
|
|
93
|
+
- `bash skills/code-review/scripts/test_review_gate.sh`
|
|
94
|
+
- `bash skills/code-review/scripts/test_review_client_order.sh`
|
|
95
|
+
- `bash skills/code-review/scripts/test_cli_review_wrappers.sh`
|
|
96
|
+
- `python3 skills/code-review/scripts/test_kimi_packet_mcp.py`
|
|
97
|
+
- `python3 skills/code-review/scripts/test_review_client_compat.py`
|
|
98
|
+
- `bash skills/code-review/scripts/test_code_review_identity.sh`
|
package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Classify a non-success Claude JSON or stream-json result envelope.
|
|
3
|
+
|
|
4
|
+
Reads the captured stdout on stdin. When the captured text is a JSON envelope this
|
|
5
|
+
is the primary, structure-based classifier: it reads `is_error`, `subtype`,
|
|
6
|
+
`api_error_status`, `permission_denials`, and the `result` error text instead of
|
|
7
|
+
grepping raw CLI prose. It prints a single reason token to stdout and exits 0.
|
|
8
|
+
|
|
9
|
+
Exit 1 means no JSON object/envelope was present (for example a CLI startup auth
|
|
10
|
+
failure that only wrote to stderr); the caller may then use a thin stderr/text
|
|
11
|
+
fallback. Exit 3 means a JSON object/envelope was present but carried no classified
|
|
12
|
+
error; callers must not grep its model-controlled payload as transport diagnostics.
|
|
13
|
+
|
|
14
|
+
Reason tokens printed on exit 0:
|
|
15
|
+
auth -> not logged in / login required
|
|
16
|
+
quota:<text> -> rate limit / quota / api_error_status 429
|
|
17
|
+
permission_denied -> tool permission denials present
|
|
18
|
+
error:<subtype>:<text> -> generic errored envelope
|
|
19
|
+
"""
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
import json
|
|
23
|
+
import re
|
|
24
|
+
import sys
|
|
25
|
+
|
|
26
|
+
NOT_LOGGED_IN = re.compile(r"(^|[^a-z])not logged in([^a-z]|$)|please run /login", re.I)
|
|
27
|
+
QUOTA = re.compile(r"rate limit exceeded|quota exceeded|hit your limit", re.I)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def result_text(env: dict) -> str:
|
|
31
|
+
result = env.get("result")
|
|
32
|
+
return result if isinstance(result, str) else ""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def classify(env: dict) -> str | None:
|
|
36
|
+
text = result_text(env)
|
|
37
|
+
if env.get("permission_denials"):
|
|
38
|
+
return "permission_denied"
|
|
39
|
+
api_status = env.get("api_error_status")
|
|
40
|
+
if api_status == 429:
|
|
41
|
+
snippet = " ".join(text.split())[:200]
|
|
42
|
+
return f"quota:{snippet}" if snippet else "quota:rate limit or quota exceeded"
|
|
43
|
+
subtype = env.get("subtype")
|
|
44
|
+
errored = env.get("is_error") is True or subtype not in (None, "success")
|
|
45
|
+
if errored and NOT_LOGGED_IN.search(text):
|
|
46
|
+
return "auth"
|
|
47
|
+
if errored and QUOTA.search(text):
|
|
48
|
+
snippet = " ".join(text.split())[:200]
|
|
49
|
+
return f"quota:{snippet}" if snippet else "quota:rate limit or quota exceeded"
|
|
50
|
+
if errored:
|
|
51
|
+
snippet = " ".join(text.split())[:160]
|
|
52
|
+
return f"error:{subtype}:{snippet}"
|
|
53
|
+
return None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def decode_result(raw: str) -> dict | None:
|
|
57
|
+
try:
|
|
58
|
+
value = json.loads(raw)
|
|
59
|
+
return value if isinstance(value, dict) else None
|
|
60
|
+
except json.JSONDecodeError:
|
|
61
|
+
pass
|
|
62
|
+
events: list[dict] = []
|
|
63
|
+
for raw_line in raw.splitlines():
|
|
64
|
+
line = raw_line.strip()
|
|
65
|
+
if not line:
|
|
66
|
+
continue
|
|
67
|
+
try:
|
|
68
|
+
event = json.loads(line)
|
|
69
|
+
except json.JSONDecodeError:
|
|
70
|
+
return None
|
|
71
|
+
if not isinstance(event, dict):
|
|
72
|
+
return None
|
|
73
|
+
events.append(event)
|
|
74
|
+
results = [event for event in events if event.get("type") == "result"]
|
|
75
|
+
return results[-1] if results else None
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def main() -> int:
|
|
79
|
+
raw = sys.stdin.read().strip()
|
|
80
|
+
if not raw:
|
|
81
|
+
return 1
|
|
82
|
+
env = decode_result(raw)
|
|
83
|
+
if env is None:
|
|
84
|
+
return 1
|
|
85
|
+
reason = classify(env)
|
|
86
|
+
if reason is None:
|
|
87
|
+
return 3
|
|
88
|
+
print(reason)
|
|
89
|
+
return 0
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == "__main__":
|
|
93
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Return success only when an exit is attributable to the timeout supervisor.
|
|
3
|
+
set -u
|
|
4
|
+
|
|
5
|
+
[ "$#" -eq 3 ] || exit 2
|
|
6
|
+
run_rc="$1"
|
|
7
|
+
run_elapsed="$2"
|
|
8
|
+
timeout_limit="$3"
|
|
9
|
+
case "$run_rc:$run_elapsed:$timeout_limit" in
|
|
10
|
+
*[!0-9:]*) exit 2 ;;
|
|
11
|
+
esac
|
|
12
|
+
|
|
13
|
+
[ "$run_rc" -eq 124 ] && exit 0
|
|
14
|
+
[ "$run_rc" -eq 137 ] && [ "$run_elapsed" -gt "$timeout_limit" ] && exit 0
|
|
15
|
+
exit 1
|