@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,237 @@
|
|
|
1
|
+
# Multi-Project Token Consistency
|
|
2
|
+
|
|
3
|
+
Load this reference when working on a product that has **multiple frontend subprojects on the same end stack sharing the same brand** — for example, several React desktop apps (workbench plus admin plus marketing site), or several React H5 apps (consumer H5 plus printer H5 plus account H5).
|
|
4
|
+
|
|
5
|
+
**Same framework family, different ends** (e.g. React desktop admin + React H5 consumer + React Native app, all sharing one brand): this is a *common middle case*. The subprojects share enough infrastructure (React, TypeScript, build tooling, generated API client, request layer) that a single shared theme module can serve them, but they cannot share UI-kit components because the kits differ by end (desktop kit vs mobile kit vs native kit). Load **both** this reference and `multi-stack-strategy.md`: this reference governs the shared theme-module mechanics; multi-stack-strategy governs the per-end UI-kit and surface differences. Apply both rather than picking one.
|
|
6
|
+
|
|
7
|
+
For products that mix unrelated end stacks (e.g. React + Vue 2 + native Android + native iOS + Taro mini-app), load `multi-stack-strategy.md` first; the same-framework optimisations in this file do not apply.
|
|
8
|
+
|
|
9
|
+
This reference defines how to keep tokens, themes, and UI-kit choices aligned across same-stack subprojects so the rendered product feels like one brand, not several.
|
|
10
|
+
|
|
11
|
+
## Scope Question 0
|
|
12
|
+
|
|
13
|
+
Before applying any rule below, confirm: **are these subprojects all parts of one branded product, or are they independent products under one corporate umbrella that happen to share infrastructure?** If the latter, the rules in this file do not apply — each independent product runs its own design discipline. Route to `product-rd-workflow` for the "one product or many" decision. Optional external strategy or ideation support may supplement this through local skill discovery; otherwise escalate the question to the human owner or record it as `unresolved` in the active extraction's notes, and do not apply the rules below to a portfolio whose scope is undecided. Only proceed with the rules below when the portfolio is confirmed to render as one brand.
|
|
14
|
+
|
|
15
|
+
## Triggers
|
|
16
|
+
|
|
17
|
+
- Auditing why two same-stack subprojects of the same product render with different primary colors / button styles / spacing.
|
|
18
|
+
- Adding a new same-stack subproject to an existing multi-app product.
|
|
19
|
+
- Reviewing a `ConfigProvider` / theme injection that customizes only one component while leaving the rest at library defaults.
|
|
20
|
+
- A same-stack subproject is about to introduce its own design system because "the shared one doesn't fit".
|
|
21
|
+
|
|
22
|
+
For cross-stack design coordination, route to `multi-stack-strategy.md` first.
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
- **UI-kit stack uniqueness per end-platform**: within one product, all desktop subprojects use the same desktop UI-kit family; all mobile-H5 subprojects use the same mobile UI-kit family. A subproject choosing a different UI-kit family inside the same stack is treated as an outlier and must have an explicit retirement or isolation plan. The specific UI-kit family is a per-team decision recorded in the project's design-system file or architecture doc — it is not a recommendation from this skill. **Strong detection signal worth investigating**: a single subproject's `package.json` simultaneously depending on a desktop UI-kit (`antd` / `@mui/material` / `@mantine/core` / `@chakra-ui/react`) **and** a mobile UI-kit (`antd-mobile` / `@ionic/react` / `react-onsenui` / `vant`) is presumptively an off-stack outlier. The presumption can be cleared (without ignoring the rule) by a documented reason — a migration in progress with a known retirement plan, a deliberate adaptive UI-kit choice serving desktop+H5 from one package, a storybook / demo / lint / test dep that does not ship to runtime, or an unused dep awaiting removal. Without such a documented reason, the mixed dependency is the outlier and is owned by the subproject for fix or isolation. Per `multi-stack-strategy.md`, code-grep alone cannot distinguish accidental drift from a design-driven exception — the dependency signal triggers an audit, not an automatic verdict.
|
|
27
|
+
- **Theme must be shared, not copied**: all same-stack subprojects share one theme source — a published internal npm package, a monorepo workspace module, or an explicitly imported shared module. Each subproject copying its own `theme.ts` is anti-pattern; tokens will drift the moment one subproject ships a brand tweak.
|
|
28
|
+
- **Theme must be explicitly injected**: every subproject that depends on the brand theme injects it explicitly at the entry layer — `ConfigProvider theme={brandTheme}` at the root component or a framework-level config (`antd: { theme }` in UmiJS, `ThemeProvider` in styled-components, etc.). A subproject that ships with no theme injection silently inherits the UI-kit default and drifts away from the brand on day one.
|
|
29
|
+
- **Theme injection partial-customisation is leak**: a `ConfigProvider` that overrides only one component (e.g. `Tree.titleHeight: 32`) while leaving `colorPrimary` at default is worse than no injection — it signals "we have a theme" while shipping the default color. Either inject the full brand theme or remove the partial injection.
|
|
30
|
+
- **Empty framework-wrapper theme config = no theme**: meta-framework theme slots (`antd: { theme: ... }` in UmiJS / Next, `MaterialApp(theme: ThemeData(...))` in Flutter, mini-program platform theme fields, etc.) are evidence that the slot exists, not that it carries the brand. A wrapper with `antd: {}` / `theme: ThemeData()` / `theme: undefined` / theme key omitted is **functionally identical to no theme** and renders the UI-kit / platform default. Detection grep that matches on the slot name only (`grep "antd:"`) is a false-positive trap; the slot must be inspected and confirmed to reference the brand theme object. Apply the same standard whichever wrapper layer the stack uses.
|
|
31
|
+
- **Token names should map across the design-code boundary**: design tokens (e.g. `Colors/Base/Blue/400`) and code tokens (e.g. `colors.primary.main`) should resolve to the same value and ideally use the same naming scheme. Pure name renaming at the code side hides the design-source intent and makes refresh impossible to audit. Reuse the design-system's naming or document the bidirectional mapping.
|
|
32
|
+
|
|
33
|
+
## Source vs Export Distinction (Precondition for All Token Audits)
|
|
34
|
+
|
|
35
|
+
Before applying any audit below, classify the artifact under review. The same audit applied to a source and to a derivative export produces opposite verdicts.
|
|
36
|
+
|
|
37
|
+
- **Source artifact**: the live design-tool file with Variables panel access (URL + named collection), the canonical theme package in code source-of-truth, or a generator output the build pulls every build. Source lets the auditor inspect alias chains, mode bindings, group counts, and component-tier coverage directly.
|
|
38
|
+
- **Derivative export**: JSON / YAML / CSV / markdown produced by a plugin or one-shot export. Common shapes: built-in "Import and export variables" plugin, Tokens Studio export, Style Dictionary input JSON, community plugin exports, panel screenshots, sliced markdown spec. **Always lossy** relative to the source in at least one dimension.
|
|
39
|
+
|
|
40
|
+
### Known data-loss modes in derivative exports
|
|
41
|
+
|
|
42
|
+
Assume these by default when reading a derivative; only set aside on explicit, named evidence:
|
|
43
|
+
|
|
44
|
+
- Cross-collection alias links collapse to `$alias-unresolved` / empty string / literal alias name. The semantic binding **is present** in the source — only lost on export.
|
|
45
|
+
- Multi-mode setups (Light / Dark / brand variants) export per-mode files; cross-mode aliases break.
|
|
46
|
+
- Component-collection tokens often dropped entirely. A source can carry hundreds to thousands of component-level tokens; many plugins export only base / semantic tiers.
|
|
47
|
+
- Group / folder hierarchy flattened or renamed at export; semantic group names (Brand / Neutral / Component) merged or lost.
|
|
48
|
+
- `description` and `scope` metadata exported as empty strings even when the source has them.
|
|
49
|
+
|
|
50
|
+
### Required record before any audit verdict
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
artifact_class: source | derivative | unknown
|
|
54
|
+
source_link: <design-tool URL + collection / theme package path / generator config path>
|
|
55
|
+
derivative_provenance: <plugin name + export mode + collection scope + mode coverage + timestamp>
|
|
56
|
+
known_loss: <which of the data-loss modes above apply to this export shape>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
- `artifact_class == derivative`: either (a) pull the source and re-audit against it, or (b) explicitly label the audit `derivative-only` and restrict to checks that survive export loss (token-name typos, value mismatch in non-aliased tokens). Do **not** issue Design-Source Health Check verdicts (below) against a derivative — four of the five failure classes can be reproduced by export tools, not by the source.
|
|
60
|
+
- `artifact_class == unknown`: block the audit. A token file whose origin is unknown is insufficient evidence for any maturity or alignment finding.
|
|
61
|
+
|
|
62
|
+
## Design-Source Health Check (Pre-Consumption Gate)
|
|
63
|
+
|
|
64
|
+
Before any downstream stack (web desktop, web H5, native app, mini-program) is told to **align with** a design-system token source, run this health check on the source itself. The cross-source validation procedure that follows assumes each source is internally consistent; if a source is internally broken, alignment work copies the brokenness into every downstream stack and the cross-source drift gets harder to detect, not easier.
|
|
65
|
+
|
|
66
|
+
The gate runs against the source artifact (Figma file, token JSON export, theme package, or whichever shape the team's source-of-truth ships). It is a precondition, not a one-off; re-run when the source has a material change.
|
|
67
|
+
|
|
68
|
+
### Failure classes
|
|
69
|
+
|
|
70
|
+
A source fails the gate if any of the following holds. Each class blocks downstream alignment until the source-of-truth owner fixes it.
|
|
71
|
+
|
|
72
|
+
1. **Third-party UI-kit mirror or vendor-derived source, undeclared.** The token set substantively reproduces a third-party UI-kit's palette / scale / control sizes (Ant Design v5, antd-mobile, Material, Polaris, Tailwind defaults, shadcn, others) — typically detected by sampling 5–10 named values and finding most or all match the third-party kit's published values. A vendor-derived theme that intentionally retains vendor neutrals / spacing / control sizes while overriding brand-level roles is **legitimate**, but only when the vendor basis and the local override boundary are **declared** in the source (metadata, file name, top-of-file note, README). Per `design-system-source-of-truth.md` rule on third-party mirrors, the gate blocks **undeclared substantive mirrors**, not vendor-derived themes that have stated their basis. An undeclared mirror lets downstream teams treat the third-party kit as the team's brand customisation, blocking later real brand work and obscuring which values are negotiable.
|
|
73
|
+
2. **Drift inside one source.** The same role (primary colour, neutral text, primary action) carries **two or more competing canonical values** in one file (e.g. one Figma variable plus one "global" override). Per the Token Cross-Source Validation Procedure below, drift across sources is a recorded finding; drift inside a single source is worse — it means the source itself cannot answer "what is the primary colour" without a side conversation. The block is scoped to the affected role plus any token class that consumes it, not the entire source.
|
|
74
|
+
3. **Unresolved / placeholder values in shipped semantic tier.** The source defines role names (`colorSuccess`, `colorWarning`, `colorError*`, `colorBgContainer`, `colorTextDisabled`, semantic / state / data-viz roles) but the values are placeholders (`$alias-unresolved`, `TBD`, raw alias strings, empty), AND the source is being handed to consumers as "ready". Per the existing rule that missing semantic tokens must fail audit (not silently fall back to brand primary), shipping a source with unresolved semantic tier means every downstream stack either inherits a literal `"$alias-unresolved"` string or invents a local value — both are drift. The block is scoped to the touched roles (a downstream release that consumes none of the broken roles is not blocked by this class alone).
|
|
75
|
+
4. **No source provenance metadata.** The source artifact carries no machine-checkable pointer back to its origin. "Origin" is the Figma file labeled name + node-id when a Figma source-of-truth exists; **for the green-field / pre-Figma case** described in `design-system-source-of-truth.md` (token role taxonomy injected as code-side starting point before a Figma DS exists), the equivalent is a stable provisional pointer such as `taxonomy module path + package version + commit hash + token-set version`. The gate requires the pointer in whichever form the team's source-of-truth currently takes; it does not require Figma when Figma is not yet the source.
|
|
76
|
+
5. **No versioned snapshot for the source artifact.** The source carries no revision marker, export hash, package version, Figma version label, or generated-artifact checksum that downstream consumers can pin against. Without a snapshot identifier, "the team aligned with the source on date X" is unverifiable; a later source change silently invalidates earlier alignment evidence. Block until the source declares a versioning convention (semver / commit hash / Figma version / build hash / sync-pipeline build number).
|
|
77
|
+
|
|
78
|
+
### Procedure
|
|
79
|
+
|
|
80
|
+
1. **Pick the artifact** the design-system owner currently calls "the source" (Figma file URL + variable collection, token JSON export, the published theme package, or whatever the team uses).
|
|
81
|
+
2. **Run the five checks** above. Each check produces `pass` / `fail` / `not applicable` (with reason). Failures name the specific tokens / variables involved.
|
|
82
|
+
3. **If any check fails, scope the block to the affected source artifact + the specific token classes / roles / surfaces the downstream release would consume.** A release that touches only roles the source can answer cleanly is not blocked by an unrelated unresolved-semantic-tier finding. The fix lives in the design-system source, not in the consumer. Open the finding with the source-of-truth owner (route to `product-ui-ux-design` if no named owner exists), specify the failure class + concrete tokens, and record the block in the active extraction's notes / private alias map. **Escape valve when the source-of-truth owner cannot or will not fix in the release window**: the named design owner (and a paired risk owner for any safety-/trust-sensitive surfaces) MAY approve a **time-boxed provisional consumption** — pinned source version + recorded defect + downstream release labeled "not fully aligned" + an expiry date by which the source must be fixed or the provisional approval lapses. Provisional consumption is logged as a finding, not erased; do not use it to skip the gate quietly.
|
|
83
|
+
4. **Re-run when the source changes materially**: new variable collection, new semantic tier, palette refresh, mirror-vs-custom realignment. Do not silently consume a previously-passing source after a structural change.
|
|
84
|
+
|
|
85
|
+
### Routing for the fix
|
|
86
|
+
|
|
87
|
+
- Third-party mirror / vendor-derived source → declare the vendor basis and the local override boundary explicitly (Figma file name, top-of-file note in JSON export, README in theme package).
|
|
88
|
+
- Drift inside one source → one canonical value chosen by the source-of-truth owner; the loser becomes a documented alias or is removed.
|
|
89
|
+
- Unresolved semantic tier → owner resolves the aliases or removes the role names until they are real. Half-shipped role names are worse than missing role names.
|
|
90
|
+
- Missing provenance → add the origin pointer in the form the team's source-of-truth takes (Figma labeled-name + node-id when Figma is the source; taxonomy module path + package version + commit hash + token-set version when the team is still in the green-field / pre-Figma stage from `design-system-source-of-truth.md`).
|
|
91
|
+
- Missing versioned snapshot → declare a versioning convention (semver / commit hash / Figma version / build hash / sync-pipeline build number) so downstream consumers can pin and prove what they aligned with.
|
|
92
|
+
|
|
93
|
+
This gate intentionally does not legislate **which** values the source should pick (that is the team's design decision); it legislates that the source can give a single, internally-consistent, traceable answer before downstream consumers spend time aligning with it.
|
|
94
|
+
|
|
95
|
+
## Migration-State Classification (Before Reporting Drift)
|
|
96
|
+
|
|
97
|
+
When values differ — design source vs code, design file vs design file, code path vs code path — classify the state before reporting drift. Differences are not findings by default; only `drift` is a finding.
|
|
98
|
+
|
|
99
|
+
| state | definition | audit verdict |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| `current` | source-of-truth and live production code render the same value; other claimants either agree or are subordinated to it | aligned, no finding |
|
|
102
|
+
| `target` | a different value lives in an explicitly-declared upgrade-plan artifact (separate file labeled as such, tracked work item, named migration branch); current production unchanged | planned change, open migration item — not drift |
|
|
103
|
+
| `in-flight` | some surfaces adopted the new value while others render the old, AND a visible migration signal exists (see below) | partial-rollout finding (list remaining surfaces) — not drift |
|
|
104
|
+
| `drift` | values differ AND zero migration signals present | drift finding |
|
|
105
|
+
|
|
106
|
+
### Migration signals required to leave drift
|
|
107
|
+
|
|
108
|
+
To classify a non-current difference as `target` or `in-flight`, the audit must point at **at least one** signal by direct reference, not by hypothesis:
|
|
109
|
+
|
|
110
|
+
- An upgrade-plan design artifact, recognizable by file-name pattern, page label, or dated migration plan inside the design tool.
|
|
111
|
+
- A code-side deprecation marker on the old value: comment, JSDoc tag, lint suppression, deprecation decorator, or equivalent.
|
|
112
|
+
- A parallel-runs switch — ConfigProvider variant, theme module flag, runtime config, feature flag — allowing surfaces to opt into either value.
|
|
113
|
+
- A tracked work item with explicit migration scope recorded in the project's private provenance archive.
|
|
114
|
+
- A live computed-style sample across surfaces showing partial-but-deliberate adoption (new modules render the new value, legacy modules render the old, no random scatter).
|
|
115
|
+
|
|
116
|
+
"Possibly an upgrade" is not a signal. Default to drift until proven otherwise.
|
|
117
|
+
|
|
118
|
+
### Cross-platform brand divergence — a recurring sub-case
|
|
119
|
+
|
|
120
|
+
When the same product surfaces on multiple platforms (web desktop + native app + mini-program, etc.) and an audit finds different brand-primary values per platform, **first run the Migration-State Classification above** — different values are not findings by default. A value difference that is `target` or `in-flight` with the migration signals (upgrade-plan artifact, deprecation marker, parallel-runs switch, tracked work item, deliberate partial rollout) is the brand refresh rolling out unevenly across platforms; it is NOT cross-platform divergence and does NOT require per-platform role naming. The role-naming requirement below applies only to **permanent intentional cross-platform divergence**:
|
|
121
|
+
|
|
122
|
+
| sub-case | what it looks like | required design-source signal |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| **intentional cross-platform divergence** | Product owner has decided web brand = A, native app brand = B (history, market, accessibility, or stack-constraint reason). | Two distinct role names in the design source: `colorPrimary-web` / `colorPrimary-native`, or `brand.web.primary` / `brand.native.primary`, or per-platform variable collection. The two values must NOT both be named "primary" without disambiguation. |
|
|
125
|
+
| **accidental cross-platform drift** | Two values exist because different platforms shipped at different times against different sources; no product decision was made. | None — this is drift to fix, not a state to preserve. |
|
|
126
|
+
|
|
127
|
+
The recurring failure shape: **both values exist in one design source under colorPrimary-shaped roles with no per-platform suffix** (e.g. one in `Brand/.../colorPrimary` and another in a free-floating, often Chinese- or product-vernacular-named `Global/<brand-color>` orphan, or two same-named variables in different collections). An outsider cannot tell which is "the brand". This is Health-Check failure class 2 (drift inside one source) materialized at the cross-platform level. The fix is bilateral: name the two roles explicitly OR converge to one value; do not leave both unnamed.
|
|
128
|
+
|
|
129
|
+
**Detection signals**:
|
|
130
|
+
- Design source: ≥2 variables whose name/role expresses "primary brand color" but values differ.
|
|
131
|
+
- Code: cross-subproject grep of `colorPrimary` / `primaryColor` / `PrimaryColor` / `--brand-primary` returning ≥2 distinct hex literals across surfaces of one product.
|
|
132
|
+
- Product decision record: no PM-owned doc, ticket, or design-system note explaining the divergence.
|
|
133
|
+
|
|
134
|
+
### Output shape
|
|
135
|
+
|
|
136
|
+
A migration-state audit always returns one of: `current` / `target (owner: <named role>)` / `in-flight (N of M surfaces migrated)` / `drift` / `cross-platform-divergence (intentional, roles named)` / `cross-platform-divergence (unnamed → drift)`. Returning "different value found" without state classification is an incomplete audit.
|
|
137
|
+
|
|
138
|
+
### Hardcoded-value grep must cover both the stylesheet AND the component layer
|
|
139
|
+
|
|
140
|
+
A code search for raw token values (the color-literal detection above, or any "is this surface migrated to tokens yet" sweep) returns a **false-complete** result when it scans only stylesheets (`.css` / `.scss` / `.less`). Use grep for plain literals, but reach for AST / typed search / resolved-runtime evidence where values hide in CSS-in-JS, styled templates, or typed config. Component UI frameworks carry style values *outside* CSS, in the component/markup layer, and a stylesheet-only sweep leaves them in place while reporting the surface migrated/drift-free:
|
|
141
|
+
|
|
142
|
+
- **component props** — color / fill / background / track / thumb / active-state color props on icon, slider, chart, progress, and similar components;
|
|
143
|
+
- **inline style objects** — `style={{ backgroundColor: … }}` / `:style` bindings / equivalent;
|
|
144
|
+
- **imperative config / option objects** — dialog / toast / sheet option fields (e.g. a confirm-dialog's color field), chart option palettes, and other JS-config color strings.
|
|
145
|
+
|
|
146
|
+
Before reporting a token migration complete or a surface drift-free, enumerate the stack's component-layer color sites and grep them **alongside** the stylesheets. The owning stack skill (`web-react-dev` / `app-cross-platform-dev` / `miniapp-product-dev`) owns the concrete prop / option names for its component set; this rule owns the two-layer requirement. Color literals are the most common case, but the two-layer requirement generalizes to any token class with a component-layer site (typography / spacing / radius props, theme-option objects); the stack skill names those sites per class. The same caveat applies in reverse to the slot-name false-positive trap above — a slot that exists is not a slot that carries the brand, and a value that is absent from the stylesheet is not a value that is absent from the surface.
|
|
147
|
+
|
|
148
|
+
## Token Cross-Source Validation Procedure
|
|
149
|
+
|
|
150
|
+
Design tokens drift almost guaranteed without cross-validation. They live in the design source (Figma type styles / color styles / spacing variables / effect tokens / motion specs) AND in the code source (CSS variables / Sass / Tailwind config / native theme objects / asset catalogs). Run this procedure per token class per extraction batch.
|
|
151
|
+
|
|
152
|
+
### Token classes to validate
|
|
153
|
+
|
|
154
|
+
| Token class | Design-source representation | Code-source representation (illustrative) |
|
|
155
|
+
|---|---|---|
|
|
156
|
+
| Typography | Type styles (font-family, weight, size, line-height, letter-spacing) | Theme typography scale, CSS variables, framework theme objects, native font definitions |
|
|
157
|
+
| Color | Color styles / palette variables | CSS custom properties, theme palette, color tokens, asset catalogs |
|
|
158
|
+
| Spacing | Spacing tokens / scale | Spacing scale variables, theme spacing, native dimension resources |
|
|
159
|
+
| Border radius | Radius tokens | Radius variables, theme radius scale, native dimensions |
|
|
160
|
+
| Shadow / elevation | Effect tokens | Shadow variables, native elevation/shadow constants |
|
|
161
|
+
| Motion / duration | Component or annotation specs | Transition / animation duration variables, native motion constants |
|
|
162
|
+
|
|
163
|
+
### Procedure per token class
|
|
164
|
+
|
|
165
|
+
1. Extract source-of-truth values from the design system (class A1 file).
|
|
166
|
+
2. Extract implemented values from the code design-tokens package (the `pkg-shared` design tokens or equivalent).
|
|
167
|
+
3. Compare token by token; classify each as one of:
|
|
168
|
+
- **match** — values identical → record as confirmed, no action.
|
|
169
|
+
- **drift** — small value difference (e.g. `#3366FF` vs `#3366FE`) → record as finding; ask design + code owners which side is canonical; update the lagging side.
|
|
170
|
+
- **missing** — token exists on one side, not the other → record as finding; decide add or remove.
|
|
171
|
+
- **renamed** — same value, different name → record as finding; align names so search across sources works.
|
|
172
|
+
4. The validation result becomes part of the extraction batch's evidence ledger.
|
|
173
|
+
|
|
174
|
+
### Token audit shape (in the maintainer's private alias map)
|
|
175
|
+
|
|
176
|
+
For each token decision, record in `~/.<host>/.private-aliases/<project>.yaml`:
|
|
177
|
+
|
|
178
|
+
```yaml
|
|
179
|
+
tokens_audit:
|
|
180
|
+
- token_class: typography
|
|
181
|
+
name: heading-1
|
|
182
|
+
design_value: "<font-family>, <size>, <weight>, <line-height>, <letter-spacing>"
|
|
183
|
+
code_value: "<theme-key-or-resolved-value>"
|
|
184
|
+
code_resolved: "<resolved-value>"
|
|
185
|
+
status: match | drift | missing | renamed
|
|
186
|
+
decision: <which side is canonical; one of: design / code / undecided>
|
|
187
|
+
confirmed_at: <YYYY-MM-DD>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
The audit lives in the private alias map (project-specific provenance). The procedure shape above is the reusable rule and stays in this shared skill content. Specific tokens, project names, or values must not be added to this shared file.
|
|
191
|
+
|
|
192
|
+
## Pre-Check (Mandatory Before Any Audit Verdict)
|
|
193
|
+
|
|
194
|
+
Audits routinely produce confidently-wrong verdicts when the auditor reasons from one artifact in isolation. Every question below needs a sourced answer **before** any finding leaves the agent. "I think" / "the file shows X so X is true" / "based on the file name" are not sourced answers — they block the audit.
|
|
195
|
+
|
|
196
|
+
1. **Where is the source-of-truth?** Name the design-tool file (URL + label + collection) or the canonical code theme module path. If the portfolio holds multiple `class A1`-shaped candidates, run the Portfolio Role Taxonomy in `design-system-source-of-truth.md` first; the answer here must be a single file (or a single per-platform set) tagged `source-of-truth`.
|
|
197
|
+
2. **Is the artifact under review source or derivative?** Apply Source vs Export Distinction (above). Derivative: record provenance + known loss. Unknown: block.
|
|
198
|
+
3. **What is the related-file portfolio?** List files tagged `upgrade-plan`, `exploration-wip`, `ui-kit`, `platform-shell`, `icon-library`, `per-feature`. These may explain differences that would otherwise read as drift.
|
|
199
|
+
4. **In the source-of-truth, what is the Brand/Semantic layer actually?** Open the source (Variables panel, theme module, generator config) and record: total Brand entries, total Semantic / Neutral entries, and the alias chain for the top-five roles (primary, primary-text, text-strong, bg-container, border). Do not infer from a derivative export.
|
|
200
|
+
5. **For each code surface, what does live rendered output actually contain?** Sample the deployed surface — computed style on the live URL, screenshot, or built-CSS profiling. Code-side audits require **three layers** of evidence: design-source alias resolution + code-source theme injection + live computed style. Two layers without the third fails — bundled CSS diverges from theme files, and theme files diverge from runtime injection. **WebView-wrapper hybrid app exception is per-surface, not per-app**: a native shell that hosts the main product UI inside a `WebView`/`WKWebView`/`Activity` delegated to a remote URL plus a JS bridge has WebView-hosted flows that route their brand audit to the loaded web app — mark those `native-theme: not-applicable (webview-hosted)`. Any native-owned surface in the SAME app — splash, login, settings, offline / network-error fallback, permission prompts, native modal flows, status-bar / safe-area chrome, deep-link landing — is audited normally; whole-app `not-applicable` is wrong whenever the shell ships any native screen with brand-relevant chrome. See `app-cross-platform-dev/references/mobile-platform-boundaries.md` for the per-surface implementation rule.
|
|
201
|
+
|
|
202
|
+
### Skipping any question → these failure modes recur
|
|
203
|
+
|
|
204
|
+
- Skip Q2 → judge a derivative export's data-loss modes as the system's failures.
|
|
205
|
+
- Skip Q3 → declare drift when the difference is a documented upgrade plan or partial rollout.
|
|
206
|
+
- Skip Q4 → report "Brand layer empty" from a JSON where cross-collection aliases collapsed to placeholders.
|
|
207
|
+
- Skip Q5 → trust theme files while ConfigProvider injects a different value at runtime, or trust computed values without knowing whether they came from theme files or from inline hex literals.
|
|
208
|
+
|
|
209
|
+
## Decision Checklist
|
|
210
|
+
|
|
211
|
+
When auditing or starting multi-project token work:
|
|
212
|
+
|
|
213
|
+
1. List every subproject and its UI-kit (read `package.json` deps). Confirm they fit the stack-uniqueness rule. Outliers = the off-stack-outlier anti-pattern; route to multi-stack strategy.
|
|
214
|
+
2. For each same-stack subproject, find the theme injection point (`ConfigProvider`, framework config, `ThemeProvider`). Classify as: **full custom** / **partial custom (single prop)** / **none (default)**.
|
|
215
|
+
3. If any subproject is in **partial** or **none**: that subproject is silently off-brand. File a fix or document a deliberate exception.
|
|
216
|
+
4. Find the theme source file (or pkg) and confirm it is imported, not copied. If multiple subprojects have their own `theme.ts` with different values, the brand has already drifted; pick the canonical source and migrate.
|
|
217
|
+
5. Cross-check token naming alignment: the design-source names (e.g. semantic-tokens in the design-system Figma file) should map to the code-token names by an explicit dictionary. If the dictionary does not exist, build it before refactoring.
|
|
218
|
+
|
|
219
|
+
## Anti-Patterns
|
|
220
|
+
|
|
221
|
+
- **Each subproject ships its own theme.ts**: 4 desktop subprojects, 4 different primary colors. Detected by missing shared-pkg import.
|
|
222
|
+
- **Single-prop `ConfigProvider`**: `<ConfigProvider theme={{components: {Tree: {titleHeight: 32}}}}>` overrides one micro-detail while inheriting full default brand. Worse than no theme because it signals false confidence.
|
|
223
|
+
- **No theme at all**: subproject renders with the third-party library's marketing color (often `#1677ff`). Detected by zero `ConfigProvider theme=` usage in the source tree.
|
|
224
|
+
- **Off-stack outlier**: one subproject uses a different UI-kit family inside the same end. Detected by `package.json` deps. Usually a legacy survival; needs an explicit retirement or isolation plan.
|
|
225
|
+
- **Business-module files carry zero styles/components**: a per-feature design file that holds no `styles` and no published `components` (the API returns empty arrays) is not lightweight — it means every fill, border, radius, and type style inside the business file is a local literal that does not reference the design-system source. When code rendering a corresponding feature also hard-codes the same literal value, both ends are drifting independently. The fix is bilateral: business design files must consume the design-system styles/components library, AND code must consume the token output package, both sides verified by audit.
|
|
226
|
+
- **Hard-coded chart palette / module gradient / overview-card color in code, plus raw local fill in the matching design frame**: when the same color value appears as a literal in both the implementation and the design source, neither side is the source of truth. Resolve by promoting the value into a named token (design semantic style + code token), then deleting both literals. **Two important caveats**: (a) brand tokens and data-visualization tokens are different categories — a brand-color refresh that changes `colorPrimary` must NOT also flip chart-series-1/2/3/4 colors or risk/grade/status semantic chart colors, or chart legends silently lie about historical data. Keep `brand.*` tokens and `chart.*` / `dataViz.*` / `semantic.risk.*` tokens in separate namespaces so a brand refresh is one PR and a data-viz refresh is a separate PR with chart-legend regression tests. (b) Every chart color promotion must come with a contrast check (text-on-fill at the relevant size) and a color-blind check (deuteranopia / protanopia / tritanopia simulation). Promoting a value into a token does not by itself make the chart accessible.
|
|
227
|
+
- **Feature-local palette ownership is sometimes correct**: when a chart color encodes domain semantics that the brand cannot define (e.g. a domain-specific risk taxonomy, a domain-specific level band that the product owner authors), the right answer is a documented feature-local palette under `dataViz.<domain>.*` or `semantic.<feature>.*`, not a forced promotion into brand-level tokens. The rule "no literal in code, no raw fill in design" still applies — but the named token can live in a feature-level taxonomy with feature ownership. **Brand fallback is allowed only for neutral unstyled surfaces** (page background, default border, generic text-on-fill). A missing `semantic.risk.high` / `dataViz.<domain>.<series>` token MUST NOT silently fall back to a brand primary color — that turns a missing-token bug into a misleading chart. Make missing semantic / data-viz tokens fail the audit/build, or render an explicit unstyled state (gray + warning indicator) that surfaces the gap during QA.
|
|
228
|
+
- **Treating "the design file has no styles" as a green signal**: an empty `styles` array is not "this file inherits from the design system." It is "this file does not formally claim any token usage." Confirm by spot-checking a few frames for `boundVariables` / referenced styles before concluding the file is token-aligned.
|
|
229
|
+
- **Vendor-default literal leaked into a custom theme**: a team theme file that mostly customizes brand tokens but leaves at least one value set to a well-known third-party UI-kit default — antd v5 `#1677ff`, antd v4 `#1890ff`, Material `#6750A4` / `#D93025`, MUI `#1976d2` / `#9C27B0`, shadcn slate `#0F172A`, Bootstrap `#0d6efd`, Tailwind `blue-500 #3B82F6`, Chakra `#319795` and equivalents. The leak is more dangerous than an obvious omission because the value *looks* deliberate (someone typed it), so static "no-hex-literals" checks don't fire and reviewers assume it was a designer choice. Brand refreshes that update `colorPrimary` will silently skip these. Detection: maintain a per-stack vendor-default lookup table and grep the team's theme module(s) for any literal in the table, regardless of which property key holds it. A hit resolves to one of three classes — confirm against the design source before treating as anti-pattern: (a) **leak** — value is the vendor default, no design-source role independently resolves to it; replace with a brand token; (b) **deliberate documented reuse** — team explicitly wants this vendor color, recorded in the source comment / theme module / brand doc; keep with a comment naming the rationale; (c) **legitimate convergence** — the brand role in the design source independently resolves to the same hex (a team whose actual brand color happens to be `#1677ff` is not "leaking antd"); keep but reference the brand token, not the literal, so future audits can trace the value back through the brand layer instead of re-flagging.
|
|
230
|
+
- **Algorithmic secondary/tertiary color derivation without design approval** — applies to **custom** algorithmic derivation, NOT to standards-based platform schemes: a theme file that computes secondary/tertiary/hover/active/disabled state colors from primary via custom algorithm — HSV hue shift, alpha tint, complementary, lightness step, brightness modulation, etc. — without a designer-signed record. The pattern is convenient (brand refresh auto-updates derived colors) but skips designer judgment for every derived state. Allowed only when: (a) the derivation is documented in the theme file (one-line comment naming the algorithm and the designer/date sign-off), AND (b) the brand-refresh flow includes a derived-color visual check (screenshot diff or designer pass) before shipping. Silent algorithmic derivation that nobody reviews ships brand-tinted but designer-unapproved hover/disabled states, then no one notices when they read wrong against the new primary. **Standards-based platform carve-out**: Material You's `ColorScheme.fromSeed` / `dynamicLightColorScheme`, antd's automatic palette derivation from `colorPrimary`, MUI's `createTheme` tonal palette, and equivalent vendor-provided derivation algorithms are acceptable as the design policy when (a) the variant/version in use is recorded, (b) accessibility/contrast checks pass against the brand seed, (c) visual QA on canonical screens at the seed value is signed off. Designer sign-off applies to the policy adoption + the seed/canonical-screen pass, NOT to every runtime-generated tonal value. Stack-specific implementation guidance lives in `app-cross-platform-dev/references/{android,flutter}-dev.md`.
|
|
231
|
+
|
|
232
|
+
## Routing
|
|
233
|
+
|
|
234
|
+
- Implementation tooling (shared theme package, automated check that every subproject imports the shared theme) → `web-react-dev`.
|
|
235
|
+
- Mobile / native equivalent (`MaterialApp.theme`, `UIAppearance`) → `app-cross-platform-dev`.
|
|
236
|
+
- Mini-app equivalent (mini-app `app.json` theme and host-platform theme constraints) → `miniapp-product-dev`.
|
|
237
|
+
- Test acceptance (screenshot diff on canonical components per subproject; runtime assert that primary color matches brand) → `testing-strategy`.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Multi-Stack Strategy
|
|
2
|
+
|
|
3
|
+
Load this reference when a product spans **more than one client stack** — for example, a React workbench plus an H5 plus a native Android app plus an iOS app plus a mini-app plus a legacy Vue subproject. It defines how to decide which stack owns which surface, how to treat stack outliers, and how to keep design intent consistent when the stacks cannot share code.
|
|
4
|
+
|
|
5
|
+
## Triggers
|
|
6
|
+
|
|
7
|
+
- Auditing a product whose subprojects span multiple client stack families (React + Vue + Taro + RN + native iOS + native Android is one common shape; the stack names here are illustrative, not exhaustive).
|
|
8
|
+
- **Same-framework cross-end products** (e.g. React desktop + React H5 + React Native, all sharing one brand and one core toolchain): load this reference together with `multi-project-token-consistency.md`. The framework-shared theme module is governed by multi-project-token-consistency; per-end UI-kit choice, surface differences, and accessibility variation are governed here. Both apply, not one.
|
|
9
|
+
- A new feature must ship on web + H5 + native; deciding which surface implements which slice.
|
|
10
|
+
- A subproject uses a stack different from the rest of the product (e.g. one Vue island in a React organization).
|
|
11
|
+
- A design system was extracted from a Figma file targeting only one stack and the team is about to extend it to other stacks.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- **Map the product's stack landscape before drawing rules**: list every subproject and tag it `web-desktop` / `web-h5` / `mobile-rn` / `mobile-native-android` / `mobile-native-ios` / `mini-app` / `legacy`. A product is "multi-stack" the moment two of these coexist on the same brand.
|
|
16
|
+
- **One stack = one UI-kit family**: within each stack, pick one UI-kit family (see multi-project-token-consistency). Mixing two UI-kit families inside the same end without a stated migration plan is anti-pattern. The specific families a team uses are a project-level decision and live in the project's design-system file or architecture doc, not here.
|
|
17
|
+
- **Feature-domain capability-library isolation may be acceptable when the design source requires capabilities beyond the stack's canonical UI-kit/design-system**: the one-UI-kit-family rule is the unification baseline, not an absolute. This exception applies **only** to feature-local capability add-ons — specialized notification / toast / alert / modal / overlay / editor / chart / scanner-bridge / canvas / annotation / media-player libraries layered alongside the canonical UI-kit. It never authorizes a second UI-kit family for canonical surface area: tokens, theme, layout primitives, forms, tables, navigation, and page shell remain under the unify-stack audit. Within that scope, isolation is design-driven only when **all** of the following hold: (a) the **active team-authored A1** design-system source (classified per `design-system-source-of-truth.md` — a file labeled "design system" may be a third-party mirror; mirrors don't count) contains zero components of the relevant capability class; (b) the feature-area design file contains explicit extended forms (multi-size variants, in-domain teaching/help patterns, multi-step modal flows, hardware-aware states, or other concrete capability extensions visible as separate frames) that the canonical library **cannot express without one-off local reimplementation or unacceptable UX loss** — verify against the canonical runtime UI-kit's component docs, not Figma alone; (c) the exception is recorded with all required fields below. Missing any of (a)/(b)/(c) → treat as accidental drift and apply the unify-stack rule. **Required exception-record fields** (in the project alias map or private provenance archive, optionally mirrored to the subproject README — pick the location appropriate for project confidentiality, but recording is mandatory, not optional). The field set is shaped by which branch fired: **A1-present branch** — capability class; exact package and feature-path boundary that is exempt (everything outside the boundary stays under unify-stack audit); owner + exception date; design-source node id and revision/version marker for both the A1 file and the feature file; recheck trigger (re-evaluate when the canonical design system adds the capability class, or when either source frame's revision/version stamp changes). **Green-field/provisional branch** (when no A1 Figma design system exists yet per `design-system-source-of-truth.md` provisional path) — capability class; exact package and feature-path boundary; owner + exception date; `A1 source: absent (provisional)`; canonical runtime UI-kit version + docs link verified to lack the capability; shared primitives audited (list what was checked); feature design file node id and revision; provisional status flag; recheck trigger fires when A1 lands or when the feature file's revision changes. In either branch, missing any required field for that branch's field set → the exception does not exist and the unify-stack rule applies.
|
|
18
|
+
- **Design system should split by stack, not by product feature**: a single Figma "design system" covering desktop + H5 + native usually under-serves at least one stack. Split desktop and mobile design-system files; for mini-app or native-platform-specific tokens, split further only if there is real divergence (HIG/Material guidance, system fonts, touch targets).
|
|
19
|
+
- **Outlier stacks need a documented retire/isolate/coexist plan**: if exactly one subproject runs an off-stack family inside an otherwise unified organization (a single Vue island in a React organization is one illustrative shape), decide explicitly: retire (set a date), isolate (declare it permanently independent and exclude from brand drift checks), or coexist (write down the shared layer). A silent outlier silently leaks brand inconsistency.
|
|
20
|
+
- **No-dominant-stack early phase**: if the portfolio has no dominant stack yet (every subproject picked its own framework + UI-kit, no consolidation pressure has been applied), the retire/isolate/coexist framing does not apply — there is nothing to be an outlier *of*. The prior decision is "which stack(s) does the organization commit to long-term?", which is a product/business call, not a design call. Route to `product-rd-workflow` for the stack-commitment decision. If the consuming organization has external strategy or ideation support installed, `product-rd-workflow` may use it through local skill discovery; otherwise escalate the stack-commitment question to the human owner or record it as `unresolved` in the active audit's notes, and do not apply the retire/isolate/coexist framing in this file until that prior decision is landed.
|
|
21
|
+
- **Native + WebView + H5 hybrid is a contract, not a coincidence**: when a product ships as a native shell wrapping an H5 module, the shell owns chrome/storage/safe-area/orientation/upload-bridge/back-gesture; the H5 owns content/state/business logic. Crossing the line — H5 controlling status bar, shell rendering business UI — is the cause of most "the iPhone version looks weird" bugs. Document the contract; do not rely on each engineer's intuition.
|
|
22
|
+
- **Mini-app and RN have stack-specific design constraints**: mini-app platform variants (`weapp` / `alipay` / `jd`) have platform-locked components; RN cannot use web-only animations. The design source must signal which surfaces are supported and which fall back; the implementation skill must reject "just use the web design" guidance for these stacks.
|
|
23
|
+
|
|
24
|
+
## Code Monorepo Subproject Classification
|
|
25
|
+
|
|
26
|
+
A frontend monorepo with multiple packages is its own mini-source-set. Classify each package by role, not by directory name, before applying rules:
|
|
27
|
+
|
|
28
|
+
| Class | Definition | Routing |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| **web** | Browser-targeted application (consumer web, admin console, ops dashboard, marketing site, H5) | `web-react-dev` (or the language-specific web skill) |
|
|
31
|
+
| **native** | Mobile / desktop / TV client (Flutter, native iOS, native Android, RN, Electron) | `app-cross-platform-dev` |
|
|
32
|
+
| **mini-app** | Host-platform mini-program client (WeChat, Alipay, Douyin, Baidu, Taro/uni-app mini-program target) | `miniapp-product-dev` |
|
|
33
|
+
| **pkg-shared** | Reusable library / SDK consumed by app packages (shared components, hooks, types, design tokens, business primitives) | Routes per platform: web-facing rules → `web-react-dev`, app-facing rules → `app-cross-platform-dev`, design-system rules → `product-ui-ux-design` |
|
|
34
|
+
| **infra** | Build / tooling / dev infrastructure (CI scripts, codegen, lint config, monorepo manager, deploy/release pipelines, server-side renderers, edge config) | Mostly routing-internal; concrete rules live in the relevant implementation skill's "release/build" section |
|
|
35
|
+
| **legacy** | Archived or deprecated package, kept for reference (pre-migration, retired surface, abandoned experiment) | Excluded as a positive baseline; provenance only |
|
|
36
|
+
|
|
37
|
+
Map every package before mining. A `pkg-shared` package treated as a `web` application produces wrong-owner skill content; an `infra` package treated as `pkg-shared` produces wrong-routing rules. The retire/isolate/coexist framing in this reference operates over these classes — outliers are identified by class mismatch, not by directory name.
|
|
38
|
+
|
|
39
|
+
## Decision Checklist
|
|
40
|
+
|
|
41
|
+
When starting a multi-stack task:
|
|
42
|
+
|
|
43
|
+
1. List every subproject and tag its stack family. Identify which are `current` and which are `legacy` / `outlier`.
|
|
44
|
+
2. For each stack, confirm the canonical UI-kit family is set. Outliers raise an explicit retire/isolate/coexist decision (record in private archive).
|
|
45
|
+
3. For each end-platform stack (desktop, mobile H5, mobile native, mini-app), confirm one design-system file owns its tokens (see design-system-source-of-truth).
|
|
46
|
+
4. For native-shell + H5 / RN + H5 / mini-app + H5 hybrids: locate the chrome/business-logic contract. If it is not written down, write it down before adding new features.
|
|
47
|
+
5. For any feature spanning multiple stacks: decide per-surface ownership (desktop = X, H5 = Y, native = Z, mini-app = W). Do not assume one design satisfies all surfaces.
|
|
48
|
+
6. If one feature area inside an otherwise unified stack uses a non-canonical UI-library family: branch on whether an active team-authored A1 Figma design-system exists for that stack (classify per `design-system-source-of-truth.md`). **A1 exists** → open the A1 file AND the feature-area design file; both criteria met (zero canonical abstraction class in A1 + extended forms in feature file the canonical runtime UI-kit cannot express without one-off reimplementation or unacceptable UX loss) AND the A1-present exception-record field set from rule 2 (capability class, package/feature-path boundary, owner+date, A1+feature node ids and revisions, recheck trigger) is recorded → design-driven exception. Any criterion fails → raise the unify decision per rule 2. **No A1 yet (green-field/provisional)** → use the Green-field fallback: evaluate against the canonical runtime UI-kit's component docs + existing shared primitives + provisional token taxonomy, and record the exception with the **green-field/provisional field set from rule 2** (capability class, package/feature-path boundary, owner+date, `A1 source: absent (provisional)`, runtime UI-kit version + docs link, shared-primitives audit list, feature design node id and revision, provisional status flag, recheck trigger fires when A1 lands or feature file revision changes). Never authorize a second UI-kit family for canonical surface area regardless of branch.
|
|
49
|
+
|
|
50
|
+
## Anti-Patterns
|
|
51
|
+
|
|
52
|
+
- **Single design system, multi-stack assumption**: one Figma file expected to drive desktop + H5 + native — accessibility, density, safe area, and gesture coverage will be wrong somewhere.
|
|
53
|
+
- **Silent outlier**: a Vue 2 / legacy subproject that nobody is retiring and nobody is brand-checking. It will drift further over time until the only "fix" is rebuild.
|
|
54
|
+
- **Web-only design feeding RN/native**: motion, layout, modals built for web don't translate. Animations break, modals look like web alerts, gestures feel wrong.
|
|
55
|
+
- **Mini-app treated as H5**: mini-app platform components (Tab, Picker, Image) have platform-specific behavior; ignoring this leaves the surface visually correct but UX-wrong on some platforms.
|
|
56
|
+
- **Undocumented native-H5 contract**: every native engineer and every H5 engineer has their own mental model of "who owns the status bar / orientation / safe area / back button". A single shipping cycle reveals dozens of edge bugs.
|
|
57
|
+
- **Mechanically applying the unify rule without opening the design source**: flagging a single-feature capability-library divergence as anti-pattern using only code-side grep evidence. Accidental drift and design-driven exception look identical at the code level — the design-system file and the feature-area design file are the only authorities that distinguish them. Forcing convergence on a design-driven exception regresses the feature; tolerating accidental drift leaks brand inconsistency. The judgment lives in design, not in code grep. Note: this exception covers feature-local capability add-ons only, never a second UI-kit family for canonical surface area (layout, forms, tables, navigation, theme, page shell).
|
|
58
|
+
|
|
59
|
+
## Routing
|
|
60
|
+
|
|
61
|
+
- Web-react-dev: enforces the canonical web UI-kit and tests the desktop / H5 surfaces.
|
|
62
|
+
- App-cross-platform-dev: enforces the native / RN design-system mapping and owns the native-H5 contract document.
|
|
63
|
+
- Miniapp-product-dev: enforces mini-app platform mapping, host-platform capability boundaries, and mini-app release evidence.
|
|
64
|
+
- Testing-strategy: verifies per-platform smoke for shared features (one platform passing ≠ all platforms passing).
|
|
65
|
+
- Product-rd-workflow: if a new feature appears that should span multiple stacks, raise the decision early instead of building web-only first and "porting" later. Optional external strategy or ideation support may supplement this through local skill discovery, but the portable ccl-owned route is `product-rd-workflow`.
|