Claude-skill-registry component-research
This skill should be used when the user asks to "evaluate if TBC covers
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/component-research" ~/.claude/skills/majiayu000-claude-skill-registry-component-research && rm -rf "$T"
skills/data/component-research/SKILL.mdTBC Component Research
Process for determining if a To-Be-Continuous (TBC) component fits a use case or requires customization.
Flow
Research → Evaluate → AskUserQuestion → User selects → Proceed
Purpose
This skill provides a systematic research process to evaluate TBC framework capabilities against user requirements. Use this BEFORE generating any configuration to ensure the correct solution path.
When to Use
- Before generating
with TBC.gitlab-ci.yml - When user requests functionality that may or may not be covered by TBC
- When deciding between TBC template, variant, or custom solution
- When user asks for something and the approach needs validation
Solution Priority Hierarchy
ALWAYS follow this priority order. Higher priority = preferred solution.
| Priority | Solution | When to Use |
|---|---|---|
| 1 (Highest) | TBC template direct | Template inputs cover use case 100% |
| 2 | Template + existing variant | Template needs authentication/secrets variant |
| 3 | Variant from other template | Another template has variant that fits |
| 4 | New component | Create new TBC template |
| 5 | New component + variant | Create new template with variant |
| 6 (Lowest) | Custom step | ONLY after exhausting 1-5 |
Key Principle: The user may request a solution (e.g., "custom script") but be incorrect. This process disciplines correct framework usage by evaluating ALL options before accepting user's proposed approach.
Decision Process Overview
User Request │ ▼ ╔═══════════════════════════════════════════╗ ║ IDENTIFY CORE NEED (MANDATORY FIRST) ║ ║ Invoke identify-core-need skill ║ ╚═══════════════════════════════════════════╝ │ ▼ ╔═══════════════════════════════════════════╗ ║ DEEP RESEARCH PHASE (MANDATORY) ║ ║ See references/decision-process.md ║ ╚═══════════════════════════════════════════╝ │ ▼ Evaluate Priority 1-6 with evidence │ ▼ ╔═══════════════════════════════════════════╗ ║ ASK USER FOR CLARIFICATION ║ ║ Present options using AskUserQuestion ║ ╚═══════════════════════════════════════════╝ │ ▼ Proceed based on user selection
Quick Decision Steps
Step 1: Identify Core Need
Invoke the
skill before proceeding.identify-core-need
This skill handles:
- Clarifying ambiguous requests (AskUserQuestion)
- Applying Behavioral Principles (no artificial distinctions)
- Extracting Core Need (action + target + triggers)
- Documenting Validation Log
Only proceed to Step 2 when Core Need is clearly defined with Validation Log complete.
Step 2: Search Template Catalog
Read
schemas/_meta.json from building-with-tbc skill for complete template inventory. Check:
- Template names and versions
- Available variants
- Project paths for YML download
Step 3: Evaluate Template Fit
For each potentially matching template:
- Read
for inputsschemas/{template}.json - Check if required inputs match use case
- Check if optional inputs cover customization needs
- Review available variants in
references/variantes.md
Step 4: Deep Research (If Partial Match)
When template partially covers the need, execute Deep Research Phase:
-
Download actual YML from GitLab using URL pattern:
https://gitlab.com/{project}/-/raw/{version}/{file} -
Analyze YML content: stages, jobs, scripts, tools, extension points
-
WebSearch tool documentation for underlying tools
-
Cross-reference user need vs template vs tool capabilities
See
references/decision-process.md for complete Deep Research protocol.
Step 5: Present Options to User
CRITICAL: Do NOT decide autonomously. Present findings and ask user to choose.
After gathering evidence, use
AskUserQuestion tool to present viable options:
AskUserQuestion: header: "TBC Approach" question: "Based on research, which approach for {use case}?" options: - label: "{Template} direct" description: "Covers {X}% of requirements. {brief evidence}" - label: "{Template} + variant" description: "Adds {capability}. {brief evidence}" - label: "Custom step" description: "TBC doesn't cover {gap}. Requires manual job."
Guidelines for AskUserQuestion:
- Maximum 4 options (tool limit)
- Each option must include evidence from research
- Describe trade-offs clearly in descriptions
- Order options by Priority (1-6) - best option first
- User can always select "Other" for alternatives
Example Question:
header: "TBC Approach" question: "Which approach for Docker image build with Trivy scan?" options: - label: "docker template" description: "Builds and pushes images. Trivy scan via TBC_DOCKER_SCAN_IMAGE=true" - label: "docker + custom scan" description: "Use docker template but add separate Trivy job for more control" - label: "Custom Dockerfile job" description: "Full control but loses TBC caching and best practices"
Output Format
After user selects an option, document the decision path:
## Decision Path User Request: "{request}" │ ▼ Core Need: {action} + {target} │ ▼ Templates Checked: {list} │ ▼ Match Analysis: {findings} │ ▼ Options Presented: {options shown to user} │ ▼ User Selection: {user's choice} │ ▼ Proceeding with: Priority {N} - {solution} Evidence: - {source-1}: {finding} - {source-2}: {finding}
Reference Files
| Need | Reference |
|---|---|
| Deep Research protocol | |
Integration with building-with-tbc
After user selects an option via AskUserQuestion:
- Document decision path with user's selection
- If TBC component selected → invoke
skill to generate configbuilding-with-tbc - If custom step selected → document WHY TBC doesn't fit before proceeding
Common Scenarios
Scenario: Template Exists but Partial Fit
Follow Deep Research to check if:
- Template extension points (before_script, scripts-dir) can enable the feature
- Underlying tool supports the requirement
- Variant pattern from other template can be applied
Scenario: User Requests Custom Script
Do NOT accept immediately. Execute full research process:
- Identify what user actually needs
- Check if any TBC template covers it
- Check variants
- Only if documented failure → accept custom approach
Scenario: Multiple Templates Possible
Compare each template's fit:
- Which covers more requirements?
- Which has better extension points?
- Which has relevant variants?