INJECTED AT SESSION START. Foundation skill establishing how to find and use other skills.
This skill establishes mandatory workflows for using other skills, including checking for incomplete work at session start and requiring skill invocation before any action. It triggers when you receive any user message, forcing you to check if any skill applies (even 1% chance) before responding.
/plugin marketplace add astrosteveo/harness/plugin install astrosteveo-harness@astrosteveo/harnessThis skill inherits all available tools. When active, it can use any tool Claude has access to.
If you see "INCOMPLETE WORK DETECTED" above this skill content, you MUST:
Handling user response:
harness:subagent-driven-developmentgit commit --allow-empty -m "chore: abandon [feature] plan\n\nplan: abandoned"| Rationalization for skipping | Reality |
|---|---|
| "Let me respond to the user first" | NO. Ask about incomplete work FIRST. |
| "The user's question is more important" | Incomplete work is context. Address it first. |
| "I'll mention it later" | Later = forgotten. Ask NOW. |
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
This is not negotiable. This is not optional. You cannot rationalize your way out of this. </EXTREMELY-IMPORTANT>
In Claude Code: Use the Skill tool. When you invoke a skill, its content is loaded and presented to you—follow it directly. Never use the Read tool on skill files.
In other environments: Check your platform's documentation for how skills are loaded.
Invoke relevant or requested skills BEFORE any response or action. Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
digraph skill_flow {
"User message received" [shape=doublecircle];
"Might any skill apply?" [shape=diamond];
"Invoke Skill tool" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Create TodoWrite todo per item" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"User message received" -> "Might any skill apply?";
"Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
"Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Create TodoWrite todo per item" -> "Follow skill exactly";
}
These thoughts mean STOP—you're rationalizing:
| Thought | Reality |
|---|---|
| "This is just a simple question" | Questions are tasks. Check for skills. |
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
| "Let me gather information first" | Skills tell you HOW to gather information. |
| "This doesn't need a formal skill" | If a skill exists, use it. |
| "I remember this skill" | Skills evolve. Read current version. |
| "This doesn't count as a task" | Action = task. Check for skills. |
| "The skill is overkill" | Simple things become complex. Use it. |
| "I'll just do this one thing first" | Check BEFORE doing anything. |
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
| "I know the current version" | Training data is outdated. Use researching skill. |
| "The API is probably..." | Never assume APIs. Research current docs. |
| "Let me just read InputHandler.ts" | NO. Feature request = brainstorming skill FIRST. |
| "I'll peek at one file first" | NO. ANY file read for a feature = invoke skill first. |
If the user asks for ANY feature, enhancement, or new functionality:
INVOKE harness:brainstorming BEFORE reading ANY code files.
This is non-negotiable. Not "let me just understand the current state" first. Not "let me see what exists" first. The brainstorming skill contains the researching sub-skill which tells you HOW to explore the codebase.
| Wrong | Right |
|---|---|
| User asks for feature → Read code → Propose solution | User asks for feature → Invoke brainstorming → Research → Propose |
| "Let me see InputHandler.ts first" → Read file | "This is a feature request" → Invoke brainstorming |
When multiple skills could apply, use this order:
"Let's build X" → researching + brainstorming first, then implementation skills. "Fix this bug" → debugging first, then domain-specific skills. "Add library X" → researching first to verify current version and usage patterns.
Rigid (TDD, debugging): Follow exactly. Don't adapt away discipline.
Flexible (patterns): Adapt principles to context.
The skill itself tells you which.
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
Signs of context exhaustion:
Prevention strategies:
grep instead of reading entire filesWhen approaching limits:
git add -A && git commit -m "WIP: [description]"Resuming work:
When the session start hook detects incomplete plans (via git history), it prompts you to resume. If user says Yes, read the plan and use harness:subagent-driven-development to continue execution.
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.