@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
|
+
# Best-effort, high-signal PREFLIGHT for the obvious case of an evidence / L0 card being
|
|
5
|
+
# committed as markdown into the shared skill tree. Per the L0 storage rule
|
|
6
|
+
# (skill-extraction-workflow/references/l0-l1-l2-routing.md), evidence/L0 cards live in
|
|
7
|
+
# per-host scratch / a private alias and never under skills/**.
|
|
8
|
+
#
|
|
9
|
+
# THIS IS NOT THE GATE OF RECORD. It does not enforce the L0 storage / leakage rule —
|
|
10
|
+
# **R0 (the leakage audit, actually run and not skipped) is the L0-storage / leak gate of
|
|
11
|
+
# record**, together with the dual-track challenge. This script only catches obvious,
|
|
12
|
+
# accidental card-shaped markdown so it surfaces in changed files before review. An
|
|
13
|
+
# adversary who renames fields, splits a card across files, hides it in a non-markdown
|
|
14
|
+
# file, or shouts labels in all-caps can evade it; that is the accepted recall limit.
|
|
15
|
+
#
|
|
16
|
+
# SCAN SCOPE (default): only CHANGED markdown — the new/modified `skills/**/*.md` between an
|
|
17
|
+
# integration BASE and the current worktree, plus untracked / intent-to-add files. The base
|
|
18
|
+
# is `CCL_SKILL_BASE_REF` if set and valid, else `merge-base origin/main HEAD`, else
|
|
19
|
+
# `origin/main`; this covers branch COMMITS (not just worktree-vs-HEAD), so the check still
|
|
20
|
+
# bites post-commit / in CI. The root may be any subdirectory: the git TOPLEVEL is resolved
|
|
21
|
+
# first so toplevel-relative paths join correctly. When the root is a git repo with history
|
|
22
|
+
# but no base resolves, the scan is clean-but-DEGRADED: it reports the distinct status
|
|
23
|
+
# `evidence_card_leak_scan_degraded` (NOT a plain `scan_ok`) and scans worktree-vs-HEAD only.
|
|
24
|
+
# Degraded is WARNING-PASS (exit 0) by default so shallow / detached-HEAD / no-origin CI is not
|
|
25
|
+
# overblocked (this is a best-effort preflight and R0 is the gate of record; degraded-clean is
|
|
26
|
+
# NOT proof). Set `CCL_SKILL_BASE_REF` for full branch coverage, or opt IN to strict failure
|
|
27
|
+
# with `CCL_SKILL_EVIDENCE_CARD_STRICT_BASE=1` for CI that requires branch coverage. Unchanged
|
|
28
|
+
# historical docs are never re-policed because only changed files are scanned. (`--all <root>`
|
|
29
|
+
# does a best-effort full-tree pass for manual audits.) When the root is not a git work tree, the
|
|
30
|
+
# default falls back to a full-tree pass.
|
|
31
|
+
#
|
|
32
|
+
# Lines inside fenced code blocks (``` or ~~~) are stripped before matching, so a card quoted as
|
|
33
|
+
# a documentation EXAMPLE inside a fence does not false-trigger.
|
|
34
|
+
#
|
|
35
|
+
# A card HEADING is REQUIRED to flag. A markdown file is flagged only when it has a card
|
|
36
|
+
# HEADING (`#{1,6} Evidence Card | Captured Evidence | Lesson Card`, case-insensitive,
|
|
37
|
+
# optional trailing qualifier text) AND either:
|
|
38
|
+
# (a) a concrete conclusion (Recommended path / Disposition / Tier = a whole-token tier); OR
|
|
39
|
+
# (b) >= 2 CORE fields.
|
|
40
|
+
# Deliberately NO heading-less branch: a real card written WITHOUT a recognizable heading
|
|
41
|
+
# (e.g. just `Tier: L2` + `Trigger / context:`, or `Disposition: L1` + `Reusable pattern:`)
|
|
42
|
+
# is the ACCEPTED RECALL LIMIT — it passes here so scattered field labels in teaching / retro /
|
|
43
|
+
# definitional / risk docs never false-block. R0 (run, not skipped) + dual-track challenge are
|
|
44
|
+
# the comprehensive net for those.
|
|
45
|
+
#
|
|
46
|
+
# CORE fields: Trigger / context, Observed failure (or opportunity), First-hand evidence,
|
|
47
|
+
# Reusable pattern, Proposed skill effect (colon- or table-cell form, bullet/bold tolerant).
|
|
48
|
+
#
|
|
49
|
+
# A concrete CONCLUSION = a field `Recommended path` / `Disposition` / `Tier` whose VALUE,
|
|
50
|
+
# after stripping markdown bold / backticks / whitespace, BEGINS with a whole tier verdict
|
|
51
|
+
# token (`L0` / `L1` / `L2` / `upgrade-to-L1/L2` / `upgrade-to-L1` / `upgrade-to-L2`)
|
|
52
|
+
# terminated by end-of-value, whitespace, or a justification separator — so
|
|
53
|
+
# `Recommended path: L1 — routing risk` and `Tier: L2 (escalate)` count, while a glued
|
|
54
|
+
# continuation like `L2-cache` / `L2/foo` does NOT. The placeholder menu `L0 / L1 / L2` is
|
|
55
|
+
# not a conclusion. Bare `Path` is intentionally NOT a conclusion label (too broad).
|
|
56
|
+
#
|
|
57
|
+
# The blank template that DEFINES the card shape is exempt by EXACT anchored repo-relative
|
|
58
|
+
# path. No in-file opt-out marker is supported on purpose.
|
|
59
|
+
#
|
|
60
|
+
# POSIX `grep -E` / `sed -E` only — no ripgrep, and no GNU-only flags (no `sed` `I`).
|
|
61
|
+
|
|
62
|
+
# Exact, anchored, repo-relative allowlist of paths permitted to carry card shape (the blank
|
|
63
|
+
# template that DEFINES the shape). This array is the ONLY escape hatch and it is review-visible:
|
|
64
|
+
# any additional intentionally card-shaped teaching/reference doc must be added HERE in code,
|
|
65
|
+
# together with a self-test fixture and review / R0 evidence. There is deliberately NO in-file
|
|
66
|
+
# opt-out marker (a hidden bypass channel).
|
|
67
|
+
ALLOW_PATHS=(
|
|
68
|
+
"skills/skill-extraction-workflow/references/evidence-card-template.md"
|
|
69
|
+
)
|
|
70
|
+
is_allowlisted() { # $1 repo-relative path
|
|
71
|
+
local rel="$1" a
|
|
72
|
+
for a in "${ALLOW_PATHS[@]}"; do
|
|
73
|
+
if [ "$rel" = "$a" ]; then return 0; fi
|
|
74
|
+
done
|
|
75
|
+
return 1
|
|
76
|
+
}
|
|
77
|
+
HEADING_RE='^#{1,6}[[:space:]]*(Evidence Card|Captured Evidence|Lesson Card)([[:space:]].*)?$'
|
|
78
|
+
CONCLUSION_FEED_RE='(Recommended[[:space:]]+path|Disposition|Tier)'
|
|
79
|
+
# label match uses first-letter classes for case tolerance without GNU sed's `I` flag
|
|
80
|
+
CONCLUSION_LABEL_RE='^([Rr]ecommended[[:space:]]+[Pp]ath|[Dd]isposition|[Tt]ier)[[:space:]]*[:|][[:space:]]*'
|
|
81
|
+
PLACEHOLDER_RE='^L0 / L1 / L2$'
|
|
82
|
+
# A verdict is a leading whole token followed by end-of-value, whitespace, or a
|
|
83
|
+
# justification punctuation separator (`:`, `,`, `;`, `.`, `(`, `)`, em-dash). A glued
|
|
84
|
+
# alnum or `-`/`/` continuation (e.g. `L2-cache`, `L2/foo`) is NOT a verdict — only the
|
|
85
|
+
# explicit `upgrade-to-L1/L2` form carries an internal slash.
|
|
86
|
+
VERDICT_RE='^(upgrade-to-L1/L2|upgrade-to-L1|upgrade-to-L2|L0|L1|L2)([[:space:]:,;.()]|—|$)'
|
|
87
|
+
|
|
88
|
+
CORE_FIELD_RES=(
|
|
89
|
+
'Trigger[[:space:]]*/[[:space:]]*context'
|
|
90
|
+
'Observed failure([[:space:]]+or[[:space:]]+opportunity)?'
|
|
91
|
+
'First-hand evidence'
|
|
92
|
+
'Reusable pattern'
|
|
93
|
+
'Proposed skill effect'
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
count_core_fields() {
|
|
97
|
+
local f="$1" n=0 lbl
|
|
98
|
+
for lbl in "${CORE_FIELD_RES[@]}"; do
|
|
99
|
+
if grep -Eiq "^[[:space:]]*([-*|][[:space:]]*)?(\*\*)?${lbl}(\*\*)?[[:space:]]*[:|]" "$f"; then
|
|
100
|
+
n=$((n + 1))
|
|
101
|
+
fi
|
|
102
|
+
done
|
|
103
|
+
printf '%s' "$n"
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
# Echo "filled" (a whole-value tier verdict), "placeholder" (only the menu), or "none".
|
|
107
|
+
classify_conclusion() {
|
|
108
|
+
local f="$1" line stripped val val_norm seen_placeholder=0
|
|
109
|
+
while IFS= read -r line; do
|
|
110
|
+
stripped="$(printf '%s' "$line" | sed -E 's/`//g; s/\*\*//g; s/^[[:space:]]*[-*][[:space:]]*//; s/^[[:space:]]*\|[[:space:]]*//; s/[[:space:]]*\|[[:space:]]*$//')"
|
|
111
|
+
val="$(printf '%s' "$stripped" | sed -E "s/${CONCLUSION_LABEL_RE}//")"
|
|
112
|
+
if [ "$val" = "$stripped" ]; then continue; fi
|
|
113
|
+
val_norm="$(printf '%s' "$val" | sed -E 's/[[:space:]]+/ /g; s/^ //; s/ $//')"
|
|
114
|
+
if printf '%s' "$val_norm" | grep -Eq "$PLACEHOLDER_RE"; then seen_placeholder=1; continue; fi
|
|
115
|
+
if printf '%s' "$val_norm" | grep -Eq "$VERDICT_RE"; then printf 'filled'; return 0; fi
|
|
116
|
+
done < <(grep -Ei "$CONCLUSION_FEED_RE" "$f" || true)
|
|
117
|
+
if [ "$seen_placeholder" -eq 1 ]; then printf 'placeholder'; else printf 'none'; fi
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
# Echo the path of a temp copy of $1 with fenced code blocks (``` or ~~~) removed, so a card
|
|
121
|
+
# quoted INSIDE a code fence (docs/examples) is not matched. Only matching fence families
|
|
122
|
+
# close a block. POSIX awk; macOS compatible. Caller must rm the returned temp file.
|
|
123
|
+
sanitized_file() {
|
|
124
|
+
local f="$1" tmp
|
|
125
|
+
tmp="$(mktemp)" || return 1
|
|
126
|
+
awk '
|
|
127
|
+
{
|
|
128
|
+
if (infence) {
|
|
129
|
+
if ($0 ~ ("^[[:space:]]*" fence)) { infence = 0 }
|
|
130
|
+
next
|
|
131
|
+
}
|
|
132
|
+
if ($0 ~ /^[[:space:]]*```/) { infence = 1; fence = "```"; next }
|
|
133
|
+
if ($0 ~ /^[[:space:]]*~~~/) { infence = 1; fence = "~~~"; next }
|
|
134
|
+
print
|
|
135
|
+
}
|
|
136
|
+
' "$f" > "$tmp" || { rm -f "$tmp"; return 1; }
|
|
137
|
+
printf '%s' "$tmp"
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
file_is_card() {
|
|
141
|
+
local f="$1" san h core concl k
|
|
142
|
+
[ -f "$f" ] || return 1
|
|
143
|
+
san="$(sanitized_file "$f")" || return 1 # match on a fence-stripped copy
|
|
144
|
+
if grep -Eiq "$HEADING_RE" "$san"; then h=1; else h=0; fi
|
|
145
|
+
core="$(count_core_fields "$san")"
|
|
146
|
+
concl="$(classify_conclusion "$san")"
|
|
147
|
+
rm -f "$san"
|
|
148
|
+
if [ "$concl" = filled ]; then k=1; else k=0; fi
|
|
149
|
+
# A card heading is REQUIRED. (a) heading + concrete conclusion, OR (b) heading + >=2 core.
|
|
150
|
+
# No heading-less branch: heading-less cards are the accepted recall limit (see header).
|
|
151
|
+
if [ "$h" -eq 1 ] && [ "$k" -eq 1 ]; then return 0; fi
|
|
152
|
+
if [ "$h" -eq 1 ] && [ "$core" -ge 2 ]; then return 0; fi
|
|
153
|
+
return 1
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
# Given a root and a NUL stream of repo-relative md paths on stdin, print offenders.
|
|
157
|
+
# Returns 0 clean, 1 offenders found.
|
|
158
|
+
scan_list() {
|
|
159
|
+
local root="$1" rel hits="" seen=""
|
|
160
|
+
while IFS= read -r -d '' rel; do
|
|
161
|
+
[ -n "$rel" ] || continue
|
|
162
|
+
case "$rel" in *.md) ;; *) continue ;; esac
|
|
163
|
+
if is_allowlisted "$rel"; then continue; fi
|
|
164
|
+
case "$seen" in *"|$rel|"*) continue ;; esac
|
|
165
|
+
seen="$seen|$rel|"
|
|
166
|
+
if file_is_card "$root/$rel"; then hits+="$rel"$'\n'; fi
|
|
167
|
+
done
|
|
168
|
+
if [ -n "${hits//[$'\n']/}" ]; then printf '%s\n' "$hits"; return 1; fi
|
|
169
|
+
return 0
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
# Resolve an integration base ref to diff against; prints the ref/sha, or empty if none.
|
|
173
|
+
resolve_base_ref() {
|
|
174
|
+
local root="$1" ref
|
|
175
|
+
if [ -n "${CCL_SKILL_BASE_REF:-}" ]; then
|
|
176
|
+
if git -C "$root" rev-parse --verify -q "${CCL_SKILL_BASE_REF}^{commit}" >/dev/null 2>&1; then
|
|
177
|
+
printf '%s' "$CCL_SKILL_BASE_REF"; return 0
|
|
178
|
+
fi
|
|
179
|
+
echo "evidence_card_leak_base_ref_invalid: CCL_SKILL_BASE_REF='${CCL_SKILL_BASE_REF}' does not resolve to a commit; ignoring it" >&2
|
|
180
|
+
fi
|
|
181
|
+
if git -C "$root" rev-parse --verify -q origin/main >/dev/null 2>&1; then
|
|
182
|
+
if ref="$(git -C "$root" merge-base origin/main HEAD 2>/dev/null)" && [ -n "$ref" ]; then
|
|
183
|
+
printf '%s' "$ref"; return 0
|
|
184
|
+
fi
|
|
185
|
+
printf '%s' "origin/main"; return 0
|
|
186
|
+
fi
|
|
187
|
+
return 0
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
# NUL stream of changed skills/**/*.md for the given base ($2): base..worktree (covers branch
|
|
191
|
+
# commits + uncommitted modifications) plus untracked / intent-to-add. With an empty base it
|
|
192
|
+
# degrades to worktree-vs-HEAD, and to all-tracked when there is no HEAD. (The caller decides
|
|
193
|
+
# whether an empty base is an inconclusive result — see scan_changed.)
|
|
194
|
+
collect_changed_md() {
|
|
195
|
+
local root="$1" base="${2:-}"
|
|
196
|
+
if [ -n "$base" ]; then
|
|
197
|
+
git -C "$root" diff -z --name-only --diff-filter=d "$base" -- skills 2>/dev/null || true
|
|
198
|
+
elif git -C "$root" rev-parse --verify -q HEAD >/dev/null 2>&1; then
|
|
199
|
+
git -C "$root" diff -z --name-only --diff-filter=d HEAD -- skills 2>/dev/null || true
|
|
200
|
+
else
|
|
201
|
+
git -C "$root" ls-files -z -- skills 2>/dev/null || true
|
|
202
|
+
fi
|
|
203
|
+
git -C "$root" ls-files -z --others --exclude-standard -- skills 2>/dev/null || true
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
# NUL stream of every skills/**/*.md under root (best-effort full-tree fallback / --all).
|
|
207
|
+
collect_all_md() {
|
|
208
|
+
local root="$1"
|
|
209
|
+
[ -d "$root/skills" ] || return 0
|
|
210
|
+
( cd "$root" && find skills -type f -name '*.md' -print0 2>/dev/null ) || true
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
# Changed-scope scan against an already-resolved git TOPLEVEL.
|
|
214
|
+
# Returns: 0 clean (full base..worktree coverage), 1 offender found, 3 clean-but-DEGRADED
|
|
215
|
+
# (no integration base resolved, so only worktree-vs-HEAD was scanned — branch commits NOT
|
|
216
|
+
# covered). Degraded is surfaced distinctly (not a plain ok) but is NOT a hard fail by default
|
|
217
|
+
# (best-effort preflight; R0 is the gate of record). An offender (1) always takes precedence.
|
|
218
|
+
scan_changed() {
|
|
219
|
+
local top="$1" base degraded=0 rc=0
|
|
220
|
+
base="$(resolve_base_ref "$top")"
|
|
221
|
+
if [ -z "$base" ] && git -C "$top" rev-parse --verify -q HEAD >/dev/null 2>&1; then
|
|
222
|
+
degraded=1
|
|
223
|
+
fi
|
|
224
|
+
scan_list "$top" < <(collect_changed_md "$top" "$base") || rc=$?
|
|
225
|
+
if [ "$rc" -ne 0 ]; then return "$rc"; fi
|
|
226
|
+
if [ "$degraded" -eq 1 ]; then return 3; fi
|
|
227
|
+
return 0
|
|
228
|
+
}
|
|
229
|
+
scan_all() { scan_list "$1" < <(collect_all_md "$1"); }
|
|
230
|
+
|
|
231
|
+
# Default entry: resolve the git TOPLEVEL from any root (incl. a subdir) so git-emitted
|
|
232
|
+
# toplevel-relative paths join correctly; non-git roots fall back to a best-effort full scan.
|
|
233
|
+
scan_default() {
|
|
234
|
+
local root="$1" top
|
|
235
|
+
top="$(git -C "$root" rev-parse --show-toplevel 2>/dev/null || true)"
|
|
236
|
+
if [ -n "$top" ]; then
|
|
237
|
+
scan_changed "$top"
|
|
238
|
+
else
|
|
239
|
+
scan_all "$root"
|
|
240
|
+
fi
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
report() {
|
|
244
|
+
case "$1" in
|
|
245
|
+
0) echo "evidence_card_leak_scan_ok" ;;
|
|
246
|
+
3)
|
|
247
|
+
# Clean, but coverage degraded (no integration base). Distinct status, NOT a plain ok.
|
|
248
|
+
# WARNING-PASS by default (this is a best-effort preflight and R0 is the gate of record, so
|
|
249
|
+
# it must not overblock shallow / detached-HEAD / no-origin CI). Opt-in strict mode makes it
|
|
250
|
+
# a hard failure for CI configs that require full branch coverage.
|
|
251
|
+
echo "evidence_card_leak_scan_degraded: base unavailable (no CCL_SKILL_BASE_REF / origin/main / merge-base); scanned worktree-vs-HEAD only — branch commits NOT covered. Best-effort preflight; degraded-clean is NOT proof, R0 is the gate of record. Set CCL_SKILL_BASE_REF for full coverage." >&2
|
|
252
|
+
if [ -n "${CCL_SKILL_EVIDENCE_CARD_STRICT_BASE:-}" ]; then
|
|
253
|
+
echo "evidence_card_leak_degraded_blocking: CCL_SKILL_EVIDENCE_CARD_STRICT_BASE=1 -> treating degraded coverage as a failure" >&2
|
|
254
|
+
exit 1
|
|
255
|
+
fi
|
|
256
|
+
# default: warning-pass (exit 0)
|
|
257
|
+
;;
|
|
258
|
+
*)
|
|
259
|
+
echo "evidence_card_leak_scan_failed: a card-shaped markdown file (Evidence Card / Captured Evidence / Lesson Card heading paired with a whole-value tier conclusion or >=2 core fields) is present under skills/**. Evidence/L0 cards live in per-host scratch / a private alias, never the shared tree — move it out (see skill-extraction-workflow/references/l0-l1-l2-routing.md L0 storage rule). This is a best-effort changed-markdown preflight, NOT the gate of record; R0 is the comprehensive L0-storage / leakage gate." >&2
|
|
260
|
+
exit 1
|
|
261
|
+
;;
|
|
262
|
+
esac
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
self_test() {
|
|
266
|
+
local tmp rc=0
|
|
267
|
+
tmp="$(mktemp -d)"
|
|
268
|
+
# shellcheck disable=SC2064
|
|
269
|
+
trap "rm -rf '$tmp'" RETURN
|
|
270
|
+
mkdir -p \
|
|
271
|
+
"$tmp/skills/demo/references/sub/deep" \
|
|
272
|
+
"$tmp/skills/demo/notes" \
|
|
273
|
+
"$tmp/skills/skill-extraction-workflow/references"
|
|
274
|
+
|
|
275
|
+
# ---- baseline that must always PASS (full-tree fixture scan) ----
|
|
276
|
+
printf '## Evidence Card\n- Trigger / context: x\n- First-hand evidence: y\n- Recommended path: L2\n' \
|
|
277
|
+
> "$tmp/skills/skill-extraction-workflow/references/evidence-card-template.md" # allowlisted
|
|
278
|
+
printf '# notes\njust prose, no card here\n' > "$tmp/skills/demo/references/clean.md"
|
|
279
|
+
printf '# walkthrough\n- **Tier** — points toward L2.\n' > "$tmp/skills/demo/references/prose.md"
|
|
280
|
+
printf '## Evidence Card\n- Recommended path: L0 / L1 / L2\n' \
|
|
281
|
+
> "$tmp/skills/demo/references/blank-copy.md" # heading + menu only
|
|
282
|
+
printf '## Evidence Card\n\nExplanatory prose about what an evidence card is.\n' \
|
|
283
|
+
> "$tmp/skills/demo/references/heading-only.md"
|
|
284
|
+
printf '# risk register\n- Risk: high\n- Tier: L2\n' \
|
|
285
|
+
> "$tmp/skills/demo/references/risk-tier.md" # conclusion + only non-core
|
|
286
|
+
printf '# fields explained\n- First-hand evidence: needed first\n- Reusable pattern: the generalization\n' \
|
|
287
|
+
> "$tmp/skills/demo/references/definitional.md" # two core names only
|
|
288
|
+
printf '# fields\n- Trigger / context: what surfaced it\n- Scope: the boundary\n- Risk: axes\n' \
|
|
289
|
+
> "$tmp/skills/demo/references/teaching-fields.md" # core + non-core, no heading/concl
|
|
290
|
+
printf '# cache notes\n- Trigger / context: x\n- Tier: L2-cache/foo\n' \
|
|
291
|
+
> "$tmp/skills/demo/references/tier-cache.md" # L2-cache is NOT a verdict
|
|
292
|
+
printf '# cache map\n- Trigger / context: x\n- Path: L2-cache/foo\n' \
|
|
293
|
+
> "$tmp/skills/demo/references/path-cache.md" # bare Path is not a label
|
|
294
|
+
printf '## Captured Evidence\n- Reusable pattern: the generalization\n' \
|
|
295
|
+
> "$tmp/skills/demo/references/retro-doc.md" # heading + SINGLE core, no conclusion
|
|
296
|
+
printf '# retro notes\n- Reusable pattern: y\n- Disposition: L1\n' \
|
|
297
|
+
> "$tmp/skills/demo/references/disp-noheading.md" # conclusion+core but NO heading -> residual PASS
|
|
298
|
+
printf '# retro notes\n- Trigger / context: x\n- Tier: L2\n' \
|
|
299
|
+
> "$tmp/skills/demo/references/tier-noheading.md" # conclusion+core but NO heading -> residual PASS
|
|
300
|
+
printf '## Evidence Card\n- Trigger / context: x\n- Tier: L2-cache/foo\n' \
|
|
301
|
+
> "$tmp/skills/demo/references/tier-cache-heading.md" # heading present but L2-cache is NOT a verdict, only 1 core
|
|
302
|
+
printf '%b' '# how-to guide\nQuote the template inside a fence:\n```\n## Evidence Card\n- Trigger / context: x\n- First-hand evidence: y\n- Recommended path: L2\n```\nEnd of example.\n' \
|
|
303
|
+
> "$tmp/skills/demo/references/fenced-example.md" # full card shape only INSIDE a ``` fence -> PASS
|
|
304
|
+
printf '%b' '# tilde fence example\n~~~\n## Lesson Card\n- Recommended path: L1\n~~~\n' \
|
|
305
|
+
> "$tmp/skills/demo/references/fenced-tilde.md" # card shape only INSIDE a ~~~ fence -> PASS
|
|
306
|
+
if ! scan_all "$tmp" >/dev/null; then
|
|
307
|
+
echo "self-test FAIL: baseline tripped the gate" >&2; rc=1
|
|
308
|
+
fi
|
|
309
|
+
|
|
310
|
+
# ---- offenders that must each BLOCK (create, assert, remove) ----
|
|
311
|
+
block_case() { # $1 label, $2 rel path under $tmp, $3 body (printf %b)
|
|
312
|
+
printf '%b' "$3" > "$tmp/$2"
|
|
313
|
+
if scan_all "$tmp" >/dev/null; then
|
|
314
|
+
echo "self-test FAIL: $1 not detected" >&2; rc=1
|
|
315
|
+
fi
|
|
316
|
+
rm -f "$tmp/$2"
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
block_case "shallow classic card" "skills/demo/references/leak.md" \
|
|
320
|
+
'## Evidence Card\n- Recommended path: L2\n'
|
|
321
|
+
block_case "deep-nested card" "skills/demo/references/sub/deep/leak.md" \
|
|
322
|
+
'## Evidence Card\n- Recommended path: L1\n'
|
|
323
|
+
block_case "nested non-references card" "skills/demo/notes/leak.md" \
|
|
324
|
+
'## Evidence Card\n- Recommended path: upgrade-to-L1/L2\n'
|
|
325
|
+
block_case "spaced-filename card" "skills/demo/references/a card.md" \
|
|
326
|
+
'## Evidence Card\n- Recommended path: L2\n'
|
|
327
|
+
block_case "lowercase heading card" "skills/demo/references/lower.md" \
|
|
328
|
+
'## evidence card\n- Recommended path: L1\n'
|
|
329
|
+
block_case "plain-line conclusion card" "skills/demo/references/plain.md" \
|
|
330
|
+
'# Evidence Card\nRecommended path: L2\n'
|
|
331
|
+
block_case "table-row conclusion card" "skills/demo/references/table.md" \
|
|
332
|
+
'## Evidence Card\n| Recommended path | L2 |\n'
|
|
333
|
+
block_case "qualified heading (em-dash suffix) + conclusion" "skills/demo/references/q1.md" \
|
|
334
|
+
'## Evidence Card — routing miss\n- Trigger / context: x\n- Recommended path: L2\n'
|
|
335
|
+
block_case "qualified heading (parenthetical suffix) + 2 core fields" "skills/demo/references/q2.md" \
|
|
336
|
+
'### Captured Evidence (process retro)\n- First-hand evidence: y\n- Reusable pattern: z\n'
|
|
337
|
+
block_case "Captured Evidence heading + two core fields" "skills/demo/references/cap.md" \
|
|
338
|
+
'## Captured Evidence\n- Trigger / context: x\n- First-hand evidence: y\n'
|
|
339
|
+
block_case "unfenced card (same content as the fenced example)" "skills/demo/references/unfenced.md" \
|
|
340
|
+
'# how-to guide\n## Evidence Card\n- Trigger / context: x\n- First-hand evidence: y\n- Recommended path: L2\nEnd of example.\n'
|
|
341
|
+
block_case "heading + verdict with em-dash justification" "skills/demo/references/just.md" \
|
|
342
|
+
'## Evidence Card\n- Recommended path: L1 — routing risk\n'
|
|
343
|
+
block_case "heading + verdict with parenthetical justification" "skills/demo/references/just2.md" \
|
|
344
|
+
'## Lesson Card\n- Tier: L2 (escalate, routing surface)\n'
|
|
345
|
+
block_case "heading + upgrade-to verdict" "skills/demo/references/upg.md" \
|
|
346
|
+
'## Captured Evidence\n- Disposition: upgrade-to-L1/L2\n'
|
|
347
|
+
|
|
348
|
+
# ---- allowlist exemption: a fully filled card AT the allow path must PASS ----
|
|
349
|
+
printf '## Evidence Card\n- Trigger / context: x\n- First-hand evidence: y\n- Recommended path: L2\n' \
|
|
350
|
+
> "$tmp/skills/skill-extraction-workflow/references/evidence-card-template.md"
|
|
351
|
+
if ! scan_all "$tmp" >/dev/null; then
|
|
352
|
+
echo "self-test FAIL: allowlisted path not exempted" >&2; rc=1
|
|
353
|
+
fi
|
|
354
|
+
|
|
355
|
+
# ---- report() status mapping (no git needed): degraded is distinct + WARNING-PASS by default
|
|
356
|
+
if ! printf '%s' "$(report 0)" | grep -q 'evidence_card_leak_scan_ok'; then
|
|
357
|
+
echo "self-test FAIL: report(0) should print scan_ok" >&2; rc=1
|
|
358
|
+
fi
|
|
359
|
+
if ! printf '%s' "$(report 3 2>&1 || true)" | grep -q 'evidence_card_leak_scan_degraded'; then
|
|
360
|
+
echo "self-test FAIL: report(3) should print scan_degraded (distinct, not ok)" >&2; rc=1
|
|
361
|
+
fi
|
|
362
|
+
if ! ( report 3 >/dev/null 2>&1 ); then
|
|
363
|
+
echo "self-test FAIL: degraded(3) must be WARNING-PASS (exit 0) by default" >&2; rc=1
|
|
364
|
+
fi
|
|
365
|
+
if ( CCL_SKILL_EVIDENCE_CARD_STRICT_BASE=1 report 3 >/dev/null 2>&1 ); then
|
|
366
|
+
echo "self-test FAIL: CCL_SKILL_EVIDENCE_CARD_STRICT_BASE=1 must make degraded(3) BLOCK" >&2; rc=1
|
|
367
|
+
fi
|
|
368
|
+
|
|
369
|
+
# ---- changed-scope tests (git-dependent): gated behind a capability probe so missing infra
|
|
370
|
+
# (no git / mktemp / temp-dir / commit capability) SKIPS them with an explicit warning
|
|
371
|
+
# instead of blocking the whole gate. The pure shape tests above always run, and any
|
|
372
|
+
# assertion failure below still sets rc=1 (only infra-unavailability skips, never asserts).
|
|
373
|
+
fgit() { # $1 repo dir, rest git args — isolated from global signing/hooks/system+global config
|
|
374
|
+
local r="$1"; shift
|
|
375
|
+
HOME="$r" GIT_CONFIG_NOSYSTEM=1 git -C "$r" \
|
|
376
|
+
-c user.email=test@example.invalid -c user.name=test \
|
|
377
|
+
-c commit.gpgsign=false -c tag.gpgsign=false -c core.hooksPath="$r/_emptyhooks" "$@"
|
|
378
|
+
}
|
|
379
|
+
git_fixture_capable() { # 0 if a temp repo + commit can be created, else 1
|
|
380
|
+
command -v git >/dev/null 2>&1 || return 1
|
|
381
|
+
command -v mktemp >/dev/null 2>&1 || return 1
|
|
382
|
+
local p; p="$(mktemp -d 2>/dev/null)" || return 1
|
|
383
|
+
[ -n "$p" ] || return 1
|
|
384
|
+
mkdir -p "$p/_emptyhooks"
|
|
385
|
+
local ok=1
|
|
386
|
+
if fgit "$p" init -q >/dev/null 2>&1 \
|
|
387
|
+
&& printf 'x\n' > "$p/probe.txt" \
|
|
388
|
+
&& fgit "$p" add -A >/dev/null 2>&1 \
|
|
389
|
+
&& fgit "$p" commit -q --no-verify -m probe >/dev/null 2>&1; then
|
|
390
|
+
ok=0
|
|
391
|
+
fi
|
|
392
|
+
rm -rf "$p"
|
|
393
|
+
return "$ok"
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
if ! git_fixture_capable; then
|
|
397
|
+
# Best-effort preflight: missing fixture infra (git / mktemp / temp commit) SKIPS the
|
|
398
|
+
# git-dependent changed-scope tests with an explicit warning by default, so unrelated authors
|
|
399
|
+
# on minimal images are not blocked. Opt-in strict mode turns the skip into a failure.
|
|
400
|
+
if [ -n "${CCL_SKILL_EVIDENCE_CARD_STRICT_SELFTEST:-}" ]; then
|
|
401
|
+
echo "evidence_card_leak_self_test_failed: git fixture capability unavailable (git / mktemp / temp-dir / commit) so changed-scope tests could not run; CCL_SKILL_EVIDENCE_CARD_STRICT_SELFTEST=1 -> failing." >&2
|
|
402
|
+
rc=1
|
|
403
|
+
else
|
|
404
|
+
echo "evidence_card_leak_self_test_skipped: git fixture capability unavailable (git / mktemp / temp-dir / commit) -> skipping changed-scope tests (non-fatal; pure shape tests still ran). Set CCL_SKILL_EVIDENCE_CARD_STRICT_SELFTEST=1 to fail instead." >&2
|
|
405
|
+
fi
|
|
406
|
+
else
|
|
407
|
+
local gr out base_sha ic
|
|
408
|
+
gr="$(mktemp -d)"
|
|
409
|
+
mkdir -p "$gr/skills/h/references" "$gr/_emptyhooks"
|
|
410
|
+
fgit "$gr" init -q
|
|
411
|
+
printf '## Evidence Card\n- Recommended path: L1\n' > "$gr/skills/h/references/historical.md" # committed at base
|
|
412
|
+
fgit "$gr" add -A >/dev/null 2>&1
|
|
413
|
+
fgit "$gr" commit -q --no-verify -m base >/dev/null 2>&1
|
|
414
|
+
base_sha="$(fgit "$gr" rev-parse HEAD)"
|
|
415
|
+
|
|
416
|
+
# (i) untracked NEW offender caught vs HEAD; committed unchanged historical NOT scanned
|
|
417
|
+
printf '## Evidence Card\n- Recommended path: L2\n' > "$gr/skills/h/references/new-leak.md"
|
|
418
|
+
out="$(scan_default "$gr" 2>/dev/null || true)"
|
|
419
|
+
if ! printf '%s' "$out" | grep -q 'new-leak.md'; then
|
|
420
|
+
echo "self-test FAIL: changed-scope missed a new offending markdown" >&2; rc=1
|
|
421
|
+
fi
|
|
422
|
+
if printf '%s' "$out" | grep -q 'historical.md'; then
|
|
423
|
+
echo "self-test FAIL: changed-scope wrongly scanned an unchanged historical offender" >&2; rc=1
|
|
424
|
+
fi
|
|
425
|
+
|
|
426
|
+
# (ii) modifying the historical file brings it INTO worktree-vs-HEAD scope -> caught
|
|
427
|
+
printf '\n- Trigger / context: y\n' >> "$gr/skills/h/references/historical.md"
|
|
428
|
+
out="$(scan_default "$gr" 2>/dev/null || true)"
|
|
429
|
+
if ! printf '%s' "$out" | grep -q 'historical.md'; then
|
|
430
|
+
echo "self-test FAIL: changed-scope missed a now-modified historical card" >&2; rc=1
|
|
431
|
+
fi
|
|
432
|
+
|
|
433
|
+
# (iii) a BRANCH-COMMITTED offender relative to the integration base must be caught via
|
|
434
|
+
# CCL_SKILL_BASE_REF — proves coverage is not just untracked-vs-HEAD (post-commit/CI).
|
|
435
|
+
fgit "$gr" checkout -q -- skills/h/references/historical.md # isolate: drop the uncommitted mod
|
|
436
|
+
rm -f "$gr/skills/h/references/new-leak.md"
|
|
437
|
+
printf '## Evidence Card\n- Recommended path: L2\n' > "$gr/skills/h/references/branch-leak.md"
|
|
438
|
+
fgit "$gr" add -A >/dev/null 2>&1
|
|
439
|
+
fgit "$gr" commit -q --no-verify -m branch-leak >/dev/null 2>&1
|
|
440
|
+
out="$(CCL_SKILL_BASE_REF="$base_sha" scan_default "$gr" 2>/dev/null || true)"
|
|
441
|
+
if ! printf '%s' "$out" | grep -q 'branch-leak.md'; then
|
|
442
|
+
echo "self-test FAIL: base-ref changed-scope missed a branch-committed offender" >&2; rc=1
|
|
443
|
+
fi
|
|
444
|
+
|
|
445
|
+
# (iv) scanning from a SUBDIR root resolves the git toplevel and still catches the offender
|
|
446
|
+
# (path-join must use the toplevel, not the subdir root).
|
|
447
|
+
printf '## Evidence Card\n- Recommended path: L2\n' > "$gr/skills/h/references/subdir-leak.md"
|
|
448
|
+
out="$(scan_default "$gr/skills/h" 2>/dev/null || true)"
|
|
449
|
+
if ! printf '%s' "$out" | grep -q 'subdir-leak.md'; then
|
|
450
|
+
echo "self-test FAIL: subdir-root scan missed the offender (toplevel/path-join bug)" >&2; rc=1
|
|
451
|
+
fi
|
|
452
|
+
rm -f "$gr/skills/h/references/subdir-leak.md"
|
|
453
|
+
|
|
454
|
+
# (v) git repo with history but NO base resolvable + clean worktree -> DEGRADED (code 3):
|
|
455
|
+
# a distinct status (report prints evidence_card_leak_scan_degraded), NOT a plain
|
|
456
|
+
# scan_ok and NOT a hard fail. (Fixture has no origin/main; CCL_SKILL_BASE_REF unset.)
|
|
457
|
+
ic=0; scan_default "$gr" >/dev/null 2>&1 || ic=$?
|
|
458
|
+
if [ "$ic" -ne 3 ]; then
|
|
459
|
+
echo "self-test FAIL: no-base clean changed-scope should be degraded(3), got $ic" >&2; rc=1
|
|
460
|
+
fi
|
|
461
|
+
rm -rf "$gr"
|
|
462
|
+
fi
|
|
463
|
+
|
|
464
|
+
if [ "$rc" -eq 0 ]; then
|
|
465
|
+
echo "evidence_card_leak_self_test_ok"
|
|
466
|
+
else
|
|
467
|
+
echo "evidence_card_leak_self_test_failed" >&2
|
|
468
|
+
fi
|
|
469
|
+
return "$rc"
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
main() {
|
|
473
|
+
case "${1:-}" in
|
|
474
|
+
--self-test)
|
|
475
|
+
self_test
|
|
476
|
+
;;
|
|
477
|
+
--all)
|
|
478
|
+
shift
|
|
479
|
+
local root="${1:-.}" rc=0
|
|
480
|
+
scan_all "$root" || rc=$?
|
|
481
|
+
report "$rc"
|
|
482
|
+
;;
|
|
483
|
+
*)
|
|
484
|
+
local root="${1:-.}" rc=0
|
|
485
|
+
scan_default "$root" || rc=$?
|
|
486
|
+
report "$rc"
|
|
487
|
+
;;
|
|
488
|
+
esac
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
main "$@"
|