@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,491 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Caller Git routing must never override any fixture `git -C` operation. The
|
|
5
|
+
# c12 hostile-context wrapper reintroduces synthetic values only around checker
|
|
6
|
+
# subprocesses, then restores this clean baseline before later ref mutations.
|
|
7
|
+
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_OBJECT_DIRECTORY \
|
|
8
|
+
GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_CEILING_DIRECTORIES \
|
|
9
|
+
GIT_NAMESPACE
|
|
10
|
+
|
|
11
|
+
# Catalog contract gate. docs/SKILLS.md is the single authoritative human catalog,
|
|
12
|
+
# and agent-context/session-start.md is the always-on entry routing layer. Nothing
|
|
13
|
+
# stops those two from drifting apart on the next skill added, so the gate below is
|
|
14
|
+
# the reason the catalog is allowed to exist at all (a hand-maintained skill index
|
|
15
|
+
# that can drift is exactly the artifact skill-extraction-workflow forbids).
|
|
16
|
+
#
|
|
17
|
+
# Cases:
|
|
18
|
+
# c1 a skill missing from the catalog => skill_catalog_map_mismatch
|
|
19
|
+
# c2 a "don't use" pointer naming a non-skill => skill_catalog_dangling_pointer
|
|
20
|
+
# c3 a catalog entry with no "don't use" line => skill_catalog_missing_skip_line
|
|
21
|
+
# c4 an `entry` skill absent from the routing region => skill_bootstrap_entry_uncovered
|
|
22
|
+
# c5 the routing region naming a non-skill => skill_bootstrap_dangling_pointer
|
|
23
|
+
# c6 the pristine tree => passes
|
|
24
|
+
# c7 a catalog with no entry/leaf rows => skill_catalog_missing_markers
|
|
25
|
+
# c8 near-miss tokens in a 不用 line (precision) => must NOT block
|
|
26
|
+
# c9 the routing layer file is absent => unevaluated, never contract_ok
|
|
27
|
+
# c10 a row whose only clause is a redirect => skill_catalog_missing_use_line
|
|
28
|
+
# c11 a leaf routed in the always-on layer => skill_bootstrap_leaf_in_region
|
|
29
|
+
# c12 unset base override covers upstream/fallback x empty/changed diff
|
|
30
|
+
|
|
31
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
32
|
+
REPO_ROOT="$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel)"
|
|
33
|
+
TEST_ROOT="$(mktemp -d "${TMPDIR:-/tmp}/ccl-skill-catalog.XXXXXX")"
|
|
34
|
+
trap 'rm -rf "$TEST_ROOT"' EXIT
|
|
35
|
+
|
|
36
|
+
CASE_INDEX=0
|
|
37
|
+
|
|
38
|
+
# Each case gets its own clone so a mutation cannot leak into the next one.
|
|
39
|
+
new_case() {
|
|
40
|
+
CASE_INDEX=$((CASE_INDEX + 1))
|
|
41
|
+
CASE_DIR="$TEST_ROOT/case$CASE_INDEX"
|
|
42
|
+
git clone --quiet --no-local "$REPO_ROOT" "$CASE_DIR"
|
|
43
|
+
# This suite owns catalog mutations, not the source repo's accumulated
|
|
44
|
+
# impact-chain diff. Pin each clone to the exact source tree so unrelated
|
|
45
|
+
# branch ancestry cannot make the pristine catalog case red.
|
|
46
|
+
source_head="$(git -C "$REPO_ROOT" rev-parse HEAD)"
|
|
47
|
+
git -C "$CASE_DIR" fetch --quiet --no-tags "$REPO_ROOT" HEAD
|
|
48
|
+
[ "$(git -C "$CASE_DIR" rev-parse FETCH_HEAD)" = "$source_head" ] || {
|
|
49
|
+
echo "catalog fixture fetched the wrong source HEAD" >&2
|
|
50
|
+
exit 1
|
|
51
|
+
}
|
|
52
|
+
git -C "$CASE_DIR" update-ref refs/heads/ccl-test-base FETCH_HEAD
|
|
53
|
+
# The clone carries the default branch; copy the working-tree versions of the
|
|
54
|
+
# three files under test so the gate runs against what is about to land.
|
|
55
|
+
cp "$REPO_ROOT/docs/SKILLS.md" "$CASE_DIR/docs/SKILLS.md"
|
|
56
|
+
cp "$REPO_ROOT/agent-context/session-start.md" "$CASE_DIR/agent-context/session-start.md"
|
|
57
|
+
cp "$REPO_ROOT/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh" \
|
|
58
|
+
"$CASE_DIR/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
run_case() {
|
|
62
|
+
set +e
|
|
63
|
+
CASE_OUTPUT="$(
|
|
64
|
+
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_OBJECT_DIRECTORY \
|
|
65
|
+
GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_CEILING_DIRECTORIES \
|
|
66
|
+
GIT_NAMESPACE
|
|
67
|
+
CCL_SKILL_BASE_REF=ccl-test-base \
|
|
68
|
+
bash "$CASE_DIR/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh" "$CASE_DIR" 2>&1
|
|
69
|
+
)"
|
|
70
|
+
CASE_STATUS=$?
|
|
71
|
+
set -e
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
run_case_with_default_base() {
|
|
75
|
+
set +e
|
|
76
|
+
CASE_OUTPUT="$(
|
|
77
|
+
unset CCL_SKILL_BASE_REF GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE \
|
|
78
|
+
GIT_OBJECT_DIRECTORY GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR \
|
|
79
|
+
GIT_CEILING_DIRECTORIES GIT_NAMESPACE
|
|
80
|
+
bash "$CASE_DIR/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh" "$CASE_DIR" 2>&1
|
|
81
|
+
)"
|
|
82
|
+
CASE_STATUS=$?
|
|
83
|
+
set -e
|
|
84
|
+
return "$CASE_STATUS"
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
run_case_with_base() {
|
|
88
|
+
local base="$1"
|
|
89
|
+
set +e
|
|
90
|
+
CASE_OUTPUT="$(
|
|
91
|
+
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_OBJECT_DIRECTORY \
|
|
92
|
+
GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_CEILING_DIRECTORIES \
|
|
93
|
+
GIT_NAMESPACE
|
|
94
|
+
CCL_SKILL_BASE_REF="$base" \
|
|
95
|
+
bash "$CASE_DIR/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh" "$CASE_DIR" 2>&1
|
|
96
|
+
)"
|
|
97
|
+
CASE_STATUS=$?
|
|
98
|
+
set -e
|
|
99
|
+
return "$CASE_STATUS"
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
run_with_hostile_git_context() {
|
|
103
|
+
local git_dir_was_set="${GIT_DIR+x}" git_dir_before="${GIT_DIR-}"
|
|
104
|
+
local git_work_tree_was_set="${GIT_WORK_TREE+x}" git_work_tree_before="${GIT_WORK_TREE-}"
|
|
105
|
+
local git_index_was_set="${GIT_INDEX_FILE+x}" git_index_before="${GIT_INDEX_FILE-}"
|
|
106
|
+
local status
|
|
107
|
+
|
|
108
|
+
export GIT_DIR="$HOSTILE_GIT_DIR"
|
|
109
|
+
export GIT_WORK_TREE="$HOSTILE_GIT_WORK_TREE"
|
|
110
|
+
export GIT_INDEX_FILE="$HOSTILE_GIT_INDEX"
|
|
111
|
+
if "$@"; then
|
|
112
|
+
status=0
|
|
113
|
+
else
|
|
114
|
+
status=$?
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
if [ "$git_dir_was_set" = x ]; then export GIT_DIR="$git_dir_before"; else unset GIT_DIR; fi
|
|
118
|
+
if [ "$git_work_tree_was_set" = x ]; then export GIT_WORK_TREE="$git_work_tree_before"; else unset GIT_WORK_TREE; fi
|
|
119
|
+
if [ "$git_index_was_set" = x ]; then export GIT_INDEX_FILE="$git_index_before"; else unset GIT_INDEX_FILE; fi
|
|
120
|
+
return "$status"
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
retain_only_ref_at_oid() {
|
|
124
|
+
local oid="$1" expected_ref="$2" label="$3"
|
|
125
|
+
local refs_at_oid expected_label ref_name
|
|
126
|
+
refs_at_oid="$(git -C "$CASE_DIR" for-each-ref --points-at "$oid" --format='%(refname)')"
|
|
127
|
+
while read -r ref_name; do
|
|
128
|
+
if [ -n "$ref_name" ] && [ "$ref_name" != "$expected_ref" ]; then
|
|
129
|
+
git -C "$CASE_DIR" update-ref --no-deref -d "$ref_name"
|
|
130
|
+
fi
|
|
131
|
+
done <<<"$refs_at_oid"
|
|
132
|
+
refs_at_oid="$(git -C "$CASE_DIR" for-each-ref --points-at "$oid" --format='%(refname)')"
|
|
133
|
+
expected_label="${expected_ref:-no ref}"
|
|
134
|
+
[ "$refs_at_oid" = "$expected_ref" ] || {
|
|
135
|
+
echo "FAIL[$label]: expected $expected_label at the fixture base" >&2
|
|
136
|
+
printf '%s\n' "$refs_at_oid" >&2
|
|
137
|
+
exit 1
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
seed_base_alias_tags() {
|
|
142
|
+
local oid="$1" label="$2"
|
|
143
|
+
git -C "$CASE_DIR" \
|
|
144
|
+
-c user.name='CCL Fixture' \
|
|
145
|
+
-c user.email=fixture@example.invalid \
|
|
146
|
+
tag -a "catalog-fixture-annotated-$label" \
|
|
147
|
+
-m "catalog fixture annotated alias $label" "$oid"
|
|
148
|
+
git -C "$CASE_DIR" \
|
|
149
|
+
-c advice.nestedTag=false \
|
|
150
|
+
-c user.name='CCL Fixture' \
|
|
151
|
+
-c user.email=fixture@example.invalid \
|
|
152
|
+
tag -a "catalog-fixture-nested-$label" \
|
|
153
|
+
-m "catalog fixture nested alias $label" \
|
|
154
|
+
"refs/tags/catalog-fixture-annotated-$label"
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
expect_base_alias_tags_removed() {
|
|
158
|
+
local label="$1" ref
|
|
159
|
+
for ref in \
|
|
160
|
+
"refs/tags/catalog-fixture-annotated-$label" \
|
|
161
|
+
"refs/tags/catalog-fixture-nested-$label"; do
|
|
162
|
+
if git -C "$CASE_DIR" show-ref --verify --quiet "$ref"; then
|
|
163
|
+
echo "FAIL[$label]: peeled fixture alias survived ref cleanup: $ref" >&2
|
|
164
|
+
exit 1
|
|
165
|
+
fi
|
|
166
|
+
done
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
expect_changed_entrypoint_warning() {
|
|
170
|
+
local label="$1" skill="$2"
|
|
171
|
+
[ "$CASE_STATUS" -eq 0 ] || {
|
|
172
|
+
echo "FAIL[$label]: checker failed before the changed-entrypoint oracle" >&2
|
|
173
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
174
|
+
exit 1
|
|
175
|
+
}
|
|
176
|
+
grep -q \
|
|
177
|
+
"$skill: entrypoint_body_above_recommended_for_changed_file" \
|
|
178
|
+
<<<"$CASE_OUTPUT" || {
|
|
179
|
+
echo "FAIL[$label]: changed-entrypoint warning missing" >&2
|
|
180
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
181
|
+
exit 1
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
expect_no_changed_entrypoint_warning() {
|
|
186
|
+
local label="$1" skill="$2"
|
|
187
|
+
[ "$CASE_STATUS" -eq 0 ] || {
|
|
188
|
+
echo "FAIL[$label]: checker failed before the unchanged-entrypoint oracle" >&2
|
|
189
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
190
|
+
exit 1
|
|
191
|
+
}
|
|
192
|
+
if grep -q \
|
|
193
|
+
"$skill: entrypoint_body_above_recommended_for_changed_file" \
|
|
194
|
+
<<<"$CASE_OUTPUT"; then
|
|
195
|
+
echo "FAIL[$label]: unchanged entrypoint was reported as changed" >&2
|
|
196
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
197
|
+
exit 1
|
|
198
|
+
fi
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
expect_block() {
|
|
202
|
+
local label="$1" token="$2"
|
|
203
|
+
[ "$CASE_STATUS" -ne 0 ] || {
|
|
204
|
+
echo "FAIL[$label]: gate passed but should have blocked" >&2
|
|
205
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
206
|
+
exit 1
|
|
207
|
+
}
|
|
208
|
+
printf '%s\n' "$CASE_OUTPUT" | grep -q "$token" || {
|
|
209
|
+
echo "FAIL[$label]: gate blocked without naming $token" >&2
|
|
210
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
211
|
+
exit 1
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
# c1 — a skill present in skills/ but absent from the catalog.
|
|
216
|
+
new_case
|
|
217
|
+
sed -i.bak '/^- `product-rd-workflow`/,+1d' "$CASE_DIR/docs/SKILLS.md"
|
|
218
|
+
run_case
|
|
219
|
+
expect_block c1 'missing_in_catalog=.*product-rd-workflow'
|
|
220
|
+
|
|
221
|
+
# c2 — a "don't use" line redirecting to a skill that does not exist. Without this
|
|
222
|
+
# the catalog can send a reader to a name nobody owns; the pre-existing
|
|
223
|
+
# `extra = mentioned - skills` check could never catch it because `mentioned` was
|
|
224
|
+
# already filtered down to real skills, so it was dead code.
|
|
225
|
+
new_case
|
|
226
|
+
sed -i.bak 's|^\( *- 不用:.*\)`defect-diagnosis`|\1`defect-diagnoser`|' "$CASE_DIR/docs/SKILLS.md"
|
|
227
|
+
run_case
|
|
228
|
+
expect_block c2 'skill_catalog_dangling_pointer'
|
|
229
|
+
|
|
230
|
+
# c3 — an entry that says when to use it but never when not to. The "when not to"
|
|
231
|
+
# line is the whole point of the catalog: that information already exists in each
|
|
232
|
+
# description's Skip clause and was the part humans could not see.
|
|
233
|
+
new_case
|
|
234
|
+
sed -i.bak '/^- `tighten-doc` `entry`/{n;d;}' "$CASE_DIR/docs/SKILLS.md"
|
|
235
|
+
run_case
|
|
236
|
+
expect_block c3 'skill_catalog_missing_skip_line'
|
|
237
|
+
|
|
238
|
+
# c4 — a skill marked `entry` in the catalog but not reachable from the always-on
|
|
239
|
+
# routing layer. `leaf` skills are deliberately absent from that layer.
|
|
240
|
+
new_case
|
|
241
|
+
sed -i.bak 's|\*\*feature-risk-router\*\*|feature-risk-router|' \
|
|
242
|
+
"$CASE_DIR/agent-context/session-start.md"
|
|
243
|
+
run_case
|
|
244
|
+
expect_block c4 'skill_bootstrap_entry_uncovered'
|
|
245
|
+
|
|
246
|
+
# c5 — the routing region pointing at a name that is not an installed skill.
|
|
247
|
+
new_case
|
|
248
|
+
sed -i.bak 's|\*\*tighten-doc\*\*|**tighten-docs**|' \
|
|
249
|
+
"$CASE_DIR/agent-context/session-start.md"
|
|
250
|
+
run_case
|
|
251
|
+
expect_block c5 'skill_bootstrap_dangling_pointer'
|
|
252
|
+
|
|
253
|
+
# c6 — the tree as it will land. Guards against a gate that can only ever fail.
|
|
254
|
+
new_case
|
|
255
|
+
run_case
|
|
256
|
+
[ "$CASE_STATUS" -eq 0 ] || {
|
|
257
|
+
echo "FAIL[c6]: pristine tree did not pass" >&2
|
|
258
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
259
|
+
exit 1
|
|
260
|
+
}
|
|
261
|
+
printf '%s\n' "$CASE_OUTPUT" | grep -q 'skill_catalog_contract_ok' || {
|
|
262
|
+
echo "FAIL[c6]: pristine tree passed without the contract marker" >&2
|
|
263
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
264
|
+
exit 1
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
# c7 — a catalog with no entry/leaf rows must BLOCK. There is deliberately no
|
|
268
|
+
# legacy fallback: the old loose backtick scan counted a name mentioned in another
|
|
269
|
+
# row as coverage, so keeping it as a compatibility branch would preserve exactly
|
|
270
|
+
# the hole c1 exists to close, with no owner and no expiry date.
|
|
271
|
+
new_case
|
|
272
|
+
{
|
|
273
|
+
echo '# Skill Catalog'
|
|
274
|
+
echo
|
|
275
|
+
for skill in "$REPO_ROOT"/skills/*/; do
|
|
276
|
+
echo "- \`$(basename "$skill")\` — legacy one-line entry"
|
|
277
|
+
done
|
|
278
|
+
} > "$CASE_DIR/docs/SKILLS.md"
|
|
279
|
+
run_case
|
|
280
|
+
expect_block c7 'skill_catalog_missing_markers'
|
|
281
|
+
|
|
282
|
+
# c8 — precision, not just recall. These backticked tokens sit inside 不用 lines and
|
|
283
|
+
# LOOK like the dangling-pointer class: a wildcard family, a phrase with spaces, and a
|
|
284
|
+
# hyphenless word. None is a skill name and none may be reported. Without this row a
|
|
285
|
+
# later tightening of the dangling regex over-fires on the real catalog and the suite
|
|
286
|
+
# still goes green, which is how a guard turns into an outage.
|
|
287
|
+
new_case
|
|
288
|
+
python3 - "$CASE_DIR/docs/SKILLS.md" <<'PY'
|
|
289
|
+
import sys
|
|
290
|
+
path = sys.argv[1]
|
|
291
|
+
text = open(path, encoding="utf-8").read()
|
|
292
|
+
anchor = "- `tighten-doc` `entry` "
|
|
293
|
+
head, sep, tail = text.partition(anchor)
|
|
294
|
+
assert sep, "c8 fixture anchor missing"
|
|
295
|
+
line, nl, rest = tail.partition("\n")
|
|
296
|
+
skip_line, nl2, rest2 = rest.partition("\n")
|
|
297
|
+
assert skip_line.lstrip().startswith("- 不用:"), "c8 expected a 不用 line to extend"
|
|
298
|
+
skip_line += "近邻:`*-architecture` 家族、`visible surface: no` 这类短语、`writer` 这种无连字符的词,都不是技能名。"
|
|
299
|
+
open(path, "w", encoding="utf-8").write(head + anchor + line + nl + skip_line + nl2 + rest2)
|
|
300
|
+
PY
|
|
301
|
+
run_case
|
|
302
|
+
[ "$CASE_STATUS" -eq 0 ] || {
|
|
303
|
+
echo "FAIL[c8]: near-miss tokens in a 不用 line were reported as dangling" >&2
|
|
304
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
305
|
+
exit 1
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
# c9 — a missing routing layer is a SUPPORTED state (this checker also runs on repos
|
|
309
|
+
# with no always-on layer), so it must not fail the run. What it must not do is read
|
|
310
|
+
# as clean: marking a skill entry claims the layer routes to it, so with no layer that
|
|
311
|
+
# claim was never evaluated. The run stays rc 0 and reports unevaluated; claiming
|
|
312
|
+
# contract_ok over it would be a verdict structurally incapable of being red.
|
|
313
|
+
new_case
|
|
314
|
+
rm -f "$CASE_DIR/agent-context/session-start.md"
|
|
315
|
+
run_case
|
|
316
|
+
printf '%s\n' "$CASE_OUTPUT" | grep -q 'skill_catalog_entry_coverage_unevaluated' || {
|
|
317
|
+
echo "FAIL[c9]: missing routing layer was not reported as unevaluated" >&2
|
|
318
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
319
|
+
exit 1
|
|
320
|
+
}
|
|
321
|
+
printf '%s\n' "$CASE_OUTPUT" | grep -q 'skill_catalog_contract_ok' && {
|
|
322
|
+
echo "FAIL[c9]: contract_ok claimed while entry coverage was never evaluated" >&2
|
|
323
|
+
printf '%s\n' "$CASE_OUTPUT" >&2
|
|
324
|
+
exit 1
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
# c10 — a row whose only clause is a redirect must NOT satisfy the two-line contract.
|
|
328
|
+
# `用:` is a substring of `不用:`, so a bare include? check passes a row that never
|
|
329
|
+
# says when to USE the skill.
|
|
330
|
+
new_case
|
|
331
|
+
sed -i.bak 's|^\(- `tighten-doc` `entry` \)— 用:|\1— 不用:|' "$CASE_DIR/docs/SKILLS.md"
|
|
332
|
+
run_case
|
|
333
|
+
expect_block c10 'skill_catalog_missing_use_line: tighten-doc'
|
|
334
|
+
|
|
335
|
+
# c11 — a skill marked leaf but routed in the always-on layer contradicts its own
|
|
336
|
+
# mark. The mark is what the catalog tells readers, so it must not be able to lie.
|
|
337
|
+
new_case
|
|
338
|
+
python3 - "$CASE_DIR/docs/SKILLS.md" <<'PYX'
|
|
339
|
+
import sys,re
|
|
340
|
+
p=sys.argv[1]; s=open(p,encoding="utf-8").read()
|
|
341
|
+
s=s.replace("- `tighten-doc` `entry` ","- `tighten-doc` `leaf` ",1)
|
|
342
|
+
open(p,"w",encoding="utf-8").write(s)
|
|
343
|
+
PYX
|
|
344
|
+
run_case
|
|
345
|
+
expect_block c11 'skill_bootstrap_leaf_in_region: tighten-doc'
|
|
346
|
+
|
|
347
|
+
# c12 — exercise both default-base branches without depending on the source
|
|
348
|
+
# repository's ancestry. For upstream and origin/main fallback alike, run an
|
|
349
|
+
# empty-diff arm at H and a changed-diff arm at B. The checker must track that
|
|
350
|
+
# matrix with the override unset; a no-base path that marks everything changed
|
|
351
|
+
# or a wrong-ref path cannot satisfy all four arms.
|
|
352
|
+
new_case
|
|
353
|
+
DEFAULT_CHANGED_SKILL=catalog-default-base-fixture
|
|
354
|
+
mkdir -p "$CASE_DIR/skills/$DEFAULT_CHANGED_SKILL/agents"
|
|
355
|
+
python3 - \
|
|
356
|
+
"$CASE_DIR/skills/$DEFAULT_CHANGED_SKILL/SKILL.md" \
|
|
357
|
+
"$CASE_DIR/skills/$DEFAULT_CHANGED_SKILL/agents/openai.yaml" \
|
|
358
|
+
"$CASE_DIR/docs/SKILLS.md" <<'PYBASE'
|
|
359
|
+
import re
|
|
360
|
+
import sys
|
|
361
|
+
|
|
362
|
+
skill_path, overlay_path, catalog_path = sys.argv[1:]
|
|
363
|
+
body = (
|
|
364
|
+
"# Catalog Default-Base Fixture\n\n"
|
|
365
|
+
"fixture-state-base\n\n"
|
|
366
|
+
+ "fixture-line\n" * 420
|
|
367
|
+
)
|
|
368
|
+
assert len(body.encode("utf-8")) > 5000, "c12 baseline body must exceed the warning threshold"
|
|
369
|
+
frontmatter = """---
|
|
370
|
+
name: catalog-default-base-fixture
|
|
371
|
+
description: "Synthetic skill used only inside the catalog default-base regression clone. Skip: never route it in real work."
|
|
372
|
+
---
|
|
373
|
+
"""
|
|
374
|
+
open(skill_path, "w", encoding="utf-8").write(frontmatter + body)
|
|
375
|
+
open(overlay_path, "w", encoding="utf-8").write(
|
|
376
|
+
"""interface:
|
|
377
|
+
display_name: "Catalog Default-Base Fixture"
|
|
378
|
+
short_description: "Synthetic default-base regression fixture"
|
|
379
|
+
default_prompt: "Use $catalog-default-base-fixture only inside its generated regression clone."
|
|
380
|
+
"""
|
|
381
|
+
)
|
|
382
|
+
catalog_text = open(catalog_path, encoding="utf-8").read()
|
|
383
|
+
anchor = re.search(r"(?m)^- `[a-z0-9-]+` `leaf` ", catalog_text)
|
|
384
|
+
assert anchor, "c12 catalog has no leaf row anchor"
|
|
385
|
+
fixture_row = (
|
|
386
|
+
"- `catalog-default-base-fixture` `leaf` — 用:仅供 catalog default-base 合成回归夹具。\n"
|
|
387
|
+
" - 不用:真实任务一律不路由到这个合成技能。\n"
|
|
388
|
+
)
|
|
389
|
+
open(catalog_path, "w", encoding="utf-8").write(
|
|
390
|
+
catalog_text[: anchor.start()] + fixture_row + catalog_text[anchor.start() :]
|
|
391
|
+
)
|
|
392
|
+
PYBASE
|
|
393
|
+
git -C "$CASE_DIR" add \
|
|
394
|
+
"skills/$DEFAULT_CHANGED_SKILL/SKILL.md" \
|
|
395
|
+
"skills/$DEFAULT_CHANGED_SKILL/agents/openai.yaml" \
|
|
396
|
+
docs/SKILLS.md
|
|
397
|
+
git -C "$CASE_DIR" \
|
|
398
|
+
-c user.name='CCL Fixture' \
|
|
399
|
+
-c user.email=fixture@example.invalid \
|
|
400
|
+
commit --quiet -m 'catalog default-base baseline'
|
|
401
|
+
DEFAULT_BASE_OID="$(git -C "$CASE_DIR" rev-parse HEAD)"
|
|
402
|
+
git -C "$CASE_DIR" update-ref refs/heads/catalog-fixture-base "$DEFAULT_BASE_OID"
|
|
403
|
+
git -C "$CASE_DIR" checkout --quiet -B catalog-default-base "$DEFAULT_BASE_OID"
|
|
404
|
+
git -C "$CASE_DIR" branch --set-upstream-to=catalog-fixture-base catalog-default-base >/dev/null
|
|
405
|
+
python3 - "$CASE_DIR/skills/$DEFAULT_CHANGED_SKILL/SKILL.md" <<'PYBASE'
|
|
406
|
+
import sys
|
|
407
|
+
|
|
408
|
+
path = sys.argv[1]
|
|
409
|
+
text = open(path, encoding="utf-8").read()
|
|
410
|
+
assert text.count("fixture-state-base") == 1, "c12 baseline state marker missing or duplicated"
|
|
411
|
+
updated = text.replace("fixture-state-base", "fixture-state-head")
|
|
412
|
+
assert len(updated.encode("utf-8")) == len(text.encode("utf-8")), "c12 state change must be size neutral"
|
|
413
|
+
open(path, "w", encoding="utf-8").write(updated)
|
|
414
|
+
PYBASE
|
|
415
|
+
git -C "$CASE_DIR" add "skills/$DEFAULT_CHANGED_SKILL/SKILL.md"
|
|
416
|
+
git -C "$CASE_DIR" \
|
|
417
|
+
-c user.name='CCL Fixture' \
|
|
418
|
+
-c user.email='fixture@example.invalid' \
|
|
419
|
+
commit --quiet -m 'catalog default-base fixture'
|
|
420
|
+
DEFAULT_HEAD_OID="$(git -C "$CASE_DIR" rev-parse HEAD)"
|
|
421
|
+
git -C "$CASE_DIR" update-ref refs/remotes/origin/main "$DEFAULT_HEAD_OID"
|
|
422
|
+
HOSTILE_GIT_DIR="$TEST_ROOT/hostile.git"
|
|
423
|
+
HOSTILE_GIT_WORK_TREE="$TEST_ROOT/hostile-worktree"
|
|
424
|
+
HOSTILE_GIT_INDEX="$TEST_ROOT/hostile-index"
|
|
425
|
+
mkdir -p "$HOSTILE_GIT_WORK_TREE"
|
|
426
|
+
git init --bare --quiet "$HOSTILE_GIT_DIR"
|
|
427
|
+
|
|
428
|
+
# Calibrate the observable independently of default discovery. If the size
|
|
429
|
+
# metric or fixture contract changes, fail under this explicit base label
|
|
430
|
+
# instead of misreporting a resolver regression in one of the four arms.
|
|
431
|
+
# The wrapper propagates the checker rc only after restoring Git routing. The
|
|
432
|
+
# next assertion owns the diagnostic and reads the same rc from CASE_STATUS.
|
|
433
|
+
run_with_hostile_git_context run_case_with_base "$DEFAULT_BASE_OID" || :
|
|
434
|
+
expect_changed_entrypoint_warning c12-explicit-base-calibration "$DEFAULT_CHANGED_SKILL"
|
|
435
|
+
|
|
436
|
+
# Upstream, empty diff: the sole configured upstream resolves to H.
|
|
437
|
+
git -C "$CASE_DIR" update-ref refs/heads/catalog-fixture-base "$DEFAULT_HEAD_OID"
|
|
438
|
+
seed_base_alias_tags "$DEFAULT_BASE_OID" c12-upstream-empty
|
|
439
|
+
retain_only_ref_at_oid "$DEFAULT_BASE_OID" '' c12-upstream-empty
|
|
440
|
+
expect_base_alias_tags_removed c12-upstream-empty
|
|
441
|
+
[ "$(git -C "$CASE_DIR" merge-base '@{upstream}' HEAD)" = "$DEFAULT_HEAD_OID" ] || {
|
|
442
|
+
echo 'FAIL[c12]: empty-diff upstream does not resolve to fixture HEAD' >&2
|
|
443
|
+
exit 1
|
|
444
|
+
}
|
|
445
|
+
run_with_hostile_git_context run_case_with_default_base || :
|
|
446
|
+
expect_no_changed_entrypoint_warning c12-upstream-empty "$DEFAULT_CHANGED_SKILL"
|
|
447
|
+
|
|
448
|
+
# Upstream, changed diff: the sole B-valued ref is the configured upstream.
|
|
449
|
+
git -C "$CASE_DIR" update-ref refs/heads/catalog-fixture-base "$DEFAULT_BASE_OID"
|
|
450
|
+
seed_base_alias_tags "$DEFAULT_BASE_OID" c12-upstream-changed
|
|
451
|
+
retain_only_ref_at_oid \
|
|
452
|
+
"$DEFAULT_BASE_OID" refs/heads/catalog-fixture-base c12-upstream-changed
|
|
453
|
+
expect_base_alias_tags_removed c12-upstream-changed
|
|
454
|
+
[ "$(git -C "$CASE_DIR" merge-base '@{upstream}' HEAD)" = "$DEFAULT_BASE_OID" ] || {
|
|
455
|
+
echo 'FAIL[c12]: changed-diff upstream does not resolve to fixture base' >&2
|
|
456
|
+
exit 1
|
|
457
|
+
}
|
|
458
|
+
run_with_hostile_git_context run_case_with_default_base || :
|
|
459
|
+
expect_changed_entrypoint_warning c12-upstream-changed "$DEFAULT_CHANGED_SKILL"
|
|
460
|
+
|
|
461
|
+
# Fallback, empty diff: no upstream exists and origin/main resolves to H.
|
|
462
|
+
git -C "$CASE_DIR" branch --unset-upstream
|
|
463
|
+
git -C "$CASE_DIR" update-ref refs/remotes/origin/main "$DEFAULT_HEAD_OID"
|
|
464
|
+
seed_base_alias_tags "$DEFAULT_BASE_OID" c12-fallback-empty
|
|
465
|
+
retain_only_ref_at_oid "$DEFAULT_BASE_OID" '' c12-fallback-empty
|
|
466
|
+
expect_base_alias_tags_removed c12-fallback-empty
|
|
467
|
+
git -C "$CASE_DIR" rev-parse '@{upstream}' >/dev/null 2>&1 && {
|
|
468
|
+
echo 'FAIL[c12]: fallback arm still has an upstream' >&2
|
|
469
|
+
exit 1
|
|
470
|
+
}
|
|
471
|
+
[ "$(git -C "$CASE_DIR" merge-base origin/main HEAD)" = "$DEFAULT_HEAD_OID" ] || {
|
|
472
|
+
echo 'FAIL[c12]: empty-diff origin/main does not resolve to fixture HEAD' >&2
|
|
473
|
+
exit 1
|
|
474
|
+
}
|
|
475
|
+
run_with_hostile_git_context run_case_with_default_base || :
|
|
476
|
+
expect_no_changed_entrypoint_warning c12-fallback-empty "$DEFAULT_CHANGED_SKILL"
|
|
477
|
+
|
|
478
|
+
# Fallback, changed diff: the sole B-valued ref is origin/main.
|
|
479
|
+
git -C "$CASE_DIR" update-ref refs/remotes/origin/main "$DEFAULT_BASE_OID"
|
|
480
|
+
seed_base_alias_tags "$DEFAULT_BASE_OID" c12-fallback-changed
|
|
481
|
+
retain_only_ref_at_oid \
|
|
482
|
+
"$DEFAULT_BASE_OID" refs/remotes/origin/main c12-fallback-changed
|
|
483
|
+
expect_base_alias_tags_removed c12-fallback-changed
|
|
484
|
+
[ "$(git -C "$CASE_DIR" merge-base origin/main HEAD)" = "$DEFAULT_BASE_OID" ] || {
|
|
485
|
+
echo 'FAIL[c12]: changed-diff origin/main does not resolve to fixture base' >&2
|
|
486
|
+
exit 1
|
|
487
|
+
}
|
|
488
|
+
run_with_hostile_git_context run_case_with_default_base || :
|
|
489
|
+
expect_changed_entrypoint_warning c12-fallback-changed "$DEFAULT_CHANGED_SKILL"
|
|
490
|
+
|
|
491
|
+
echo "test_check_ccl_skill_catalog: ok"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Regression tests for the non-blocking source-register lifecycle advisory in
|
|
3
|
+
# check-ccl-skills.sh. Uses a temp clone with a tiny synthetic register so
|
|
4
|
+
# assertions do not depend on the real shared ledger's line numbers or current rows.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
8
|
+
CHECK_SCRIPT="$SCRIPT_DIR/check-ccl-skills.sh"
|
|
9
|
+
LIFECYCLE_GATE="$SCRIPT_DIR/source-register-lifecycle.rb"
|
|
10
|
+
ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd -P)"
|
|
11
|
+
[ -f "$CHECK_SCRIPT" ] || { echo "FAIL: checker not found: $CHECK_SCRIPT" >&2; exit 1; }
|
|
12
|
+
[ -f "$LIFECYCLE_GATE" ] || { echo "FAIL: lifecycle gate not found: $LIFECYCLE_GATE" >&2; exit 1; }
|
|
13
|
+
[ -d "$ROOT/skills" ] || { echo "FAIL: repo root has no skills/ dir: $ROOT" >&2; exit 1; }
|
|
14
|
+
|
|
15
|
+
TMP="$(mktemp -d "${TMPDIR:-/tmp}/source-register-lifecycle.XXXXXX")"
|
|
16
|
+
trap 'rm -rf "$TMP"' EXIT
|
|
17
|
+
|
|
18
|
+
fail() { echo "FAIL: $*" >&2; exit 1; }
|
|
19
|
+
assert_rc() { [ "$1" = "$2" ] || fail "expected rc=$2 got rc=$1${3:+ ($3)}"; }
|
|
20
|
+
assert_contains() { case "$2" in *"$1"*) : ;; *) fail "expected output to contain: $1${3:+ ($3)}";; esac; }
|
|
21
|
+
assert_not_contains() { case "$2" in *"$1"*) fail "expected output NOT to contain: $1${3:+ ($3)}";; *) : ;; esac; }
|
|
22
|
+
|
|
23
|
+
REPO="$TMP/repo"
|
|
24
|
+
git clone -q "$ROOT" "$REPO"
|
|
25
|
+
git -C "$REPO" config user.email test@example.invalid
|
|
26
|
+
git -C "$REPO" config user.name "Test User"
|
|
27
|
+
git -C "$REPO" branch fixture-base HEAD
|
|
28
|
+
git -C "$REPO" switch -q -c fixture-work
|
|
29
|
+
git -C "$REPO" branch --set-upstream-to=fixture-base fixture-work >/dev/null
|
|
30
|
+
REGISTER="$REPO/skills/skill-extraction-workflow/references/source-register.md"
|
|
31
|
+
|
|
32
|
+
write_register() {
|
|
33
|
+
marker="$1"
|
|
34
|
+
cat > "$REGISTER" <<EOF
|
|
35
|
+
# Source Register Lifecycle Fixture
|
|
36
|
+
|
|
37
|
+
Methodology prose must not be counted: supersedes: prose-only revalidate-when: prose-only revalidate-by: 1999-01-01.
|
|
38
|
+
|
|
39
|
+
| Upstream rule | Downstream owner | Expected executable behavior | Status | Evidence |
|
|
40
|
+
| --- | --- | --- | --- | --- |
|
|
41
|
+
| Lifecycle fixture | skill-extraction-workflow | supersedes: earlier fixture; revalidate-when: external fixture event; $marker | \`updated\` | source-register lifecycle fixture |
|
|
42
|
+
EOF
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
full_check_runs=0
|
|
46
|
+
gate_runs=0
|
|
47
|
+
# This fixture REPLACES the register with a synthetic lifecycle ledger, so none
|
|
48
|
+
# of the real repository's waiver-bearing rows are present. The firing-path gate
|
|
49
|
+
# binds each anchored EXEMPT entry to its citing row and fails closed when that
|
|
50
|
+
# row is missing, which is correct for production and a false RED here. Declare
|
|
51
|
+
# the truth about this ledger instead of weakening the gate: an empty digest
|
|
52
|
+
# table means this register binds no waivers.
|
|
53
|
+
EMPTY_DIGEST_TABLE="$TMP/empty-exempt-digests.json"
|
|
54
|
+
printf '{}\n' > "$EMPTY_DIGEST_TABLE"
|
|
55
|
+
|
|
56
|
+
run_full_check() {
|
|
57
|
+
full_check_runs=$((full_check_runs + 1))
|
|
58
|
+
set +e
|
|
59
|
+
out="$(env -u ALIAS_AUDIT_CMD -u CCL_SKILL_BASE_REF \
|
|
60
|
+
REGISTER_FIRING_PATH_EXEMPT_DIGESTS="$EMPTY_DIGEST_TABLE" \
|
|
61
|
+
bash "$CHECK_SCRIPT" "$REPO" 2>&1)"
|
|
62
|
+
rc=$?
|
|
63
|
+
set -e
|
|
64
|
+
}
|
|
65
|
+
run_gate() {
|
|
66
|
+
gate_runs=$((gate_runs + 1))
|
|
67
|
+
set +e
|
|
68
|
+
out="$(ruby "$LIFECYCLE_GATE" "$REGISTER" 2>&1)"
|
|
69
|
+
rc=$?
|
|
70
|
+
set -e
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# past date: overdue is advisory only, rc remains 0.
|
|
74
|
+
write_register "revalidate-by: 2000-01-01"
|
|
75
|
+
run_full_check
|
|
76
|
+
assert_rc "$rc" 0 "past revalidate-by must remain non-blocking"
|
|
77
|
+
assert_contains "revalidate_overdue: source-register has revalidate-by 2000-01-01" "$out" "past date reported"
|
|
78
|
+
assert_contains "source_register_lifecycle_advisory: supersedes=1 revalidate_when=1 revalidate_by=1 overdue=1" "$out" "summary counts table-row cues only"
|
|
79
|
+
assert_contains "revalidate_check_advisory: 1 overdue marker(s) above" "$out" "existing overdue advisory retained"
|
|
80
|
+
assert_contains "ccl_skill_check_interim_ok" "$out" "public fallback still succeeds"
|
|
81
|
+
|
|
82
|
+
# future date: counted, no overdue line.
|
|
83
|
+
write_register "revalidate-by: 2999-01-01"
|
|
84
|
+
run_gate
|
|
85
|
+
assert_rc "$rc" 0 "future revalidate-by should pass"
|
|
86
|
+
assert_not_contains "revalidate_overdue:" "$out" "future date is not overdue"
|
|
87
|
+
assert_contains "source_register_lifecycle_advisory: supersedes=1 revalidate_when=1 revalidate_by=1 overdue=0" "$out" "future date counted without overdue"
|
|
88
|
+
assert_contains "revalidate_check_ok" "$out" "existing clean marker retained"
|
|
89
|
+
|
|
90
|
+
# placeholder: ignored by the date matcher and does not crash.
|
|
91
|
+
write_register "revalidate-by: <date>"
|
|
92
|
+
run_gate
|
|
93
|
+
assert_rc "$rc" 0 "placeholder revalidate-by should pass"
|
|
94
|
+
assert_not_contains "revalidate_overdue:" "$out" "placeholder is not overdue"
|
|
95
|
+
assert_contains "source_register_lifecycle_advisory: supersedes=1 revalidate_when=1 revalidate_by=0 overdue=0" "$out" "placeholder is not counted as a real date"
|
|
96
|
+
|
|
97
|
+
# invalid date: ignored by Date.strptime and does not crash.
|
|
98
|
+
write_register "revalidate-by: 2020-99-99"
|
|
99
|
+
run_gate
|
|
100
|
+
assert_rc "$rc" 0 "invalid revalidate-by should pass"
|
|
101
|
+
assert_not_contains "revalidate_overdue:" "$out" "invalid date is not overdue"
|
|
102
|
+
assert_contains "source_register_lifecycle_advisory: supersedes=1 revalidate_when=1 revalidate_by=0 overdue=0" "$out" "invalid date is not counted"
|
|
103
|
+
|
|
104
|
+
# timestamp: rejected by the lookahead and does not partial-match as a date.
|
|
105
|
+
write_register "revalidate-by: 2000-01-01T00:00:00"
|
|
106
|
+
run_gate
|
|
107
|
+
assert_rc "$rc" 0 "timestamp revalidate-by should pass"
|
|
108
|
+
assert_not_contains "revalidate_overdue:" "$out" "timestamp must not partial-match as overdue"
|
|
109
|
+
assert_contains "source_register_lifecycle_advisory: supersedes=1 revalidate_when=1 revalidate_by=0 overdue=0" "$out" "timestamp is not counted as a real date"
|
|
110
|
+
|
|
111
|
+
assert_rc "$full_check_runs" 1 "lifecycle suite must retain exactly one full checker wiring case"
|
|
112
|
+
assert_rc "$gate_runs" 4 "remaining lifecycle cases must run the standalone gate"
|
|
113
|
+
|
|
114
|
+
echo "test_check_ccl_source_register_lifecycle: ok"
|