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.
/plugin marketplace add rafaelcalleja/claude-market-place/plugin install gitlab-tbc@claude-market-placeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/decision-process.mdProcess for determining if a To-Be-Continuous (TBC) component fits a use case or requires customization.
Research → Evaluate → AskUserQuestion → User selects → Proceed
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.
.gitlab-ci.yml with TBCALWAYS 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.
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
Invoke the identify-core-need skill before proceeding.
This skill handles:
Only proceed to Step 2 when Core Need is clearly defined with Validation Log complete.
Read schemas/_meta.json from building-with-tbc skill for complete template inventory. Check:
For each potentially matching template:
schemas/{template}.json for inputsreferences/variantes.mdWhen 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.
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:
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"
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}
| Need | Reference |
|---|---|
| Deep Research protocol | references/decision-process.md |
After user selects an option via AskUserQuestion:
building-with-tbc skill to generate configFollow Deep Research to check if:
Do NOT accept immediately. Execute full research process:
Compare each template's fit:
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.