This skill should be used when the user asks to "evaluate if TBC covers
Scanned 2/12/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill component-research --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Component Research?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-component-research)More formats (shields.io, HTML) on the badges page.
---
name: component-research
description: This skill should be used when the user asks to "evaluate if TBC covers
a use case", "decide which TBC component to use", "check if a TBC template fits",
"research TBC capabilities", "find the right TBC template", "analyze if custom step
is needed", "compare TBC templates", or needs to determine whether To-Be-Continuous
framework components can solve a CI/CD requirement before generating configuration.
version: 1.0.0
---
# TBC 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 `.gitlab-ci.yml` with TBC
- 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 `identify-core-need` skill before proceeding.**
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:
1. Read `schemas/{template}.json` for inputs
2. Check if required inputs match use case
3. Check if optional inputs cover customization needs
4. Review available variants in `references/variantes.md`
### Step 4: Deep Research (If Partial Match)
When template partially covers the need, execute **Deep Research Phase**:
1. **Download actual YML** from GitLab using URL pattern:
```
https://gitlab.com/{project}/-/raw/{version}/{file}
```
2. **Analyze YML content**: stages, jobs, scripts, tools, extension points
3. **WebSearch tool documentation** for underlying tools
4. **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 | `references/decision-process.md` |
## Integration with building-with-tbc
After user selects an option via AskUserQuestion:
1. Document decision path with user's selection
2. If TBC component selected → invoke `building-with-tbc` skill to generate config
3. 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:
1. Identify what user actually needs
2. Check if any TBC template covers it
3. Check variants
4. 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?
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!