| name | compass |
| description | Use when starting any conversation โ establishes how to find and use Techneering skills, requiring skill invocation before ANY response including clarifying questions |
If you were dispatched as a subagent to execute a specific task, skip this skill.
(This is a hard instruction, not a suggestion โ subagents go straight to their assigned task.)
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
Core Principle
INVOKE RELEVANT SKILLS BEFORE ANY RESPONSE OR ACTION.
Even a 1% chance means you should invoke the skill to check.
Instruction Priority
Techneering skills override default system prompt behavior, but user instructions always take precedence:
- User's explicit instructions (CLAUDE.md, direct requests) โ highest priority
- Techneering skills โ override default system behavior where they conflict
- Default system prompt โ lowest priority
If CLAUDE.md says "don't use TDD" and a skill says "always use TDD," follow the user's instructions. The user is in control.
How to Access Skills
Invoke the skill through your host's skill mechanism (the Skill tool on Claude Code; the skill/prompt loader on Codex). When you invoke a skill, its content is loaded and presented to you โ follow it directly. Never read a skill file's raw contents manually as a substitute for invoking it.
Skill Inventory
Gateway
| Call | Trigger | Responsibility |
|---|
tn:compass | Auto-injected on every session start | Identify applicable skills, select development path |
Spec-Driven Flow Skills
| Call | Trigger | Responsibility |
|---|
tn:scout | User wants to quickly explore ideas or investigate problems | Standalone exploration mode, produces no files |
tn:draft | User raises a new requirement/change | Generate proposal + specs + design + tasks |
tn:forge | User wants to implement an existing change | Implementation entry, chains tn:blueprint โ tn:assemble |
tn:audit | After implementation is complete | Dual-layer verification: codeโspec + codeโreal requirements |
tn:vault | Change complete, confirming archive | delta spec merge โ move into archive/ |
Process Skills
| Call | Trigger | Responsibility |
|---|
tn:spark | Before new features or large changes | Socratic questioning โ approach comparison โ set direction |
tn:blueprint | Have a clear spec, about to implement | Break into bite-sized tasks |
tn:diagnose | Hit a bug, test failure | 4 phases: root cause โ pattern โ hypothesis โ fix |
tn:gate | About to claim work complete | Iron law: run command โ read output โ confirm โ then claim |
Execution Skills
| Call | Trigger | Responsibility |
|---|
tn:redgreen | Implementing any feature or fix | Red-green-refactor cycle |
tn:assemble | Have an implementation plan to execute | Subagent dispatch + per-task review + parallel scheduling |
tn:inspect | After verify passes | Global review: cross-task consistency, architecture, security |
tn:isolate | Need isolated feature development | Create isolated workspace โ verify test baseline |
Wrap-up Skill
| Call | Trigger | Responsibility |
|---|
tn:ship | After review passes | Verify tests โ present 4 options โ execute |
Domain Skill (auto-detected)
| Call | Trigger | Responsibility |
|---|
tn:craft | Any frontend/UI/page/component/style work (see Frontend Detection Rules below) | Design thinking โ aesthetic guidance โ production-grade code |
Frontend Detection Rules
When evaluating a user's request, check for these signals. If ANY match, invoke tn:craft during the implementation phase. Keywords are intentionally bilingual so Chinese user input is also detected:
| Signal type | Keyword examples |
|---|
| Direct frontend | "้กต้ข/page", "็ปไปถ/component", "UI", "็้ข/interface", "ๅธๅฑ/layout", "ๆ ทๅผ/style", "ๅ็ซฏ/frontend" |
| Interactive elements | "ๆ้ฎ/button", "่กจๅ/form", "ๅผน็ช/dialog", "ๅฏผ่ช/nav", "่ๅ/menu", "่กจๆ ผ/table", "ๅ่กจ/list", "ๅก็/card", "ๅฏน่ฏๆก/modal" |
| Visual | "้
่ฒ/color", "ไธป้ข/theme", "ๅจ็ป/animation", "ๅๅบๅผ/responsive", "ๆ่ฒๆจกๅผ/dark mode", "design" |
| Framework markers | "React", "Vue", "HTML", "CSS", "Tailwind", "Ant Design", "Element", "shadcn" |
How triggering works: Frontend detection is not a standalone path โ it auto-stacks onto the implementation phase of an existing path:
- Complete path: spark โ draft โ forge (invoke tn:craft when frontend detected) โ gate โ ...
- Lightweight path: draft โ forge (invoke tn:craft when frontend detected) โ gate โ ...
- During assemble execution: task involves frontend code โ call tn:craft for aesthetic guidance first โ then implement
- User says "make a page" directly โ skip draft, go straight to tn:craft
Development Path Selection
When a user presents a requirement, evaluate its scope and select the appropriate path:
User states a requirement
โ
โผ
[tn:compass] evaluates change size
โ
โโโ Large change (new feature, cross-module, 3+ files) โ Complete path
โโโ Medium change (single feature, 1-3 files) โ Lightweight path
โโโ Urgent fix (production bug) โ Fix path
โโโ Trivial change (typo, config value) โ Direct execution
Standalone entries (no path selection):
[tn:scout] always available, standalone exploration
Complete Path (Large Changes)
tn:spark โ tn:draft โ [tn:isolate] โ tn:forge(blueprintโassemble) โ tn:gate โ [user chooses next flow]
Lightweight Path (Medium Changes)
tn:draft โ tn:forge(blueprintโassemble) โ tn:gate โ [user chooses next flow]
Fix Path (Emergency Bugs)
tn:diagnose โ tn:redgreen โ tn:gate โ [user chooses next flow]
Post-Check Menu
After tn:gate passes, present the menu for user to choose:
| Option | Flow | Use case |
|---|
| 1. Full verification | audit โ inspect โ ship โ vault | Production code, critical features |
| 2. Standard flow | audit โ ship โ vault | Internal projects, routine features |
| 3. Quick commit | ship โ vault | Small changes, prototypes |
| 4. Verify only | audit (don't commit) | Just check, don't commit |
Direct Execution (Trivial Changes)
Direct edit โ tn:gate (optional)
Independent Explore Mode
tn:scout โ always available, pure thinking, produces no files, enters no path
Flow Transition Rules
Every skill has a Next Step section. When a skill completes, follow its transition:
| Current skill | Normal exit | Exception exit |
|---|
tn:spark | tn:draft | โ |
tn:draft | tn:forge | โ |
tn:forge | tn:gate (internally chains blueprintโassemble, ends at gate) | tn:diagnose (when implementation hits an issue) |
tn:blueprint | tn:assemble (internal chain) | โ |
tn:assemble | tn:gate | tn:diagnose (when issues arise) |
tn:redgreen | Return to caller | tn:diagnose (after 3 REDโGREEN attempts still failing) |
tn:gate | Show menu for user choice (see Post-Check Menu) | Return to current skill (when tests fail) |
tn:audit | Follow check menu choice (review / finish / end) | WARNING โ fix โ tn:gate โ tn:audit (loop limit 3 rounds) / tn:forge (large deviation) / tn:draft (spec wrong) |
tn:inspect | tn:ship | Back to tn:forge (Critical issues) |
tn:ship | tn:vault | โ |
tn:scout | None (standalone mode) | tn:draft (when user decides to implement) |
tn:craft | Return to caller (usually tn:assemble or direct implementation) | โ |
tn:diagnose | tn:redgreen โ tn:gate | โ |
tn:isolate | Return to caller | โ |
tn:vault | End | โ |
How transitions work:
- Each skill's SKILL.md contains a
## Next Step section with condition branches
- After completing a skill, read its Next Step to determine what to invoke next
- This table is the authoritative reference โ if a skill's Next Step conflicts with this table, this table wins
- Users can always override by explicitly invoking any skill
Skill Priority
When multiple skills could apply, use this order:
- Process skills first (tn:spark, tn:diagnose) โ these determine HOW to approach the task
- Implementation skills second (tn:craft) โ these guide execution
"Let's build X" โ tn:spark first, then implementation skills.
"Fix this bug" โ tn:diagnose first, then domain-specific skills.
Skill Types
Rigid (tn:redgreen, tn:diagnose, tn:gate): Follow exactly. Don't adapt away discipline.
Flexible (tn:spark, tn:blueprint, tn:scout): Adapt principles to context.
Flow (tn:draft โ tn:forge โ tn:gate โ tn:audit โ tn:inspect โ tn:ship โ tn:vault): Sequential, each step has clear output.
The skill itself tells you which.
Red Flags
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. |
| "This doesn't need a formal skill" | If a skill exists, use it. |
| "I remember this skill" | Skills evolve. Read current version. |
| "The skill is overkill" | Simple things become complex. Use it. |
| "I'll just do this one thing first" | Check BEFORE doing anything. |
Quick Reference
| Dimension | Key point |
|---|
| Total skills | 16 (gateway 1 + flow 5 + process 4 + execution 4 + wrap-up 1 + domain 1) |
| Path selection | Complete / Lightweight / Fix / Direct |
| Transition mechanism | Each skill's Next Step + the gateway Flow Transition Rules table |
| Skill types | Rigid (redgreen/diagnose/gate) / Flexible (spark/blueprint/scout) / Flow (draftโvault) |
| Source of truth | Disk files are the sole source of truth (techneering/changes/<name>/) |
Cross-Session Resume
The skill system maintains no session state. All progress is inferred from disk files:
New session starts
โ
โผ
User says "continue implementing XXX change"
โ scan techneering/changes/<name>/ directory
โ infer current progress from existing files:
โโโ only proposal.md โ back to draft, continue
โโโ has proposal + specs + design + tasks โ enter forge
โโโ tasks.md has unchecked checkboxes โ continue implementation
โโโ all checkboxes checked โ enter tn:gate (show menu after passing)
Disk files are the sole source of truth. Every skill checks files first to determine progress.
Next Step
This is the gateway skill, loaded at session start. It does not have a Next Step โ it prepares you to invoke the correct skill based on the user's request.
Guardrails
- Never skip skill check before responding to a user message
- Never read a skill file's raw contents manually as a substitute for invoking it โ use your host's skill mechanism
- User instructions always override skill instructions
- When in doubt about which skill applies, invoke it to check โ wrong invocations are harmless
- The Flow Transition Rules table is the authoritative reference for skill transitions