name: cm-engineering-meta description: "Use when looking up quick wins, access patterns, or voice map for the engineering meta layer."
cm-engineering-meta — quick wins + access + voice map
Search before building
Before adding infrastructure, search in three layers:
- Tried-and-true — patterns already in this repo / sibling services.
- New-and-popular — current docs for your stack version.
- First-principles — only when 1–2 don’t apply.
AskUserQuestion format
When asking the human to choose:
- Short context (what you already know).
- Clear question.
- RECOMMENDATION (one option you’d pick and why).
- Lettered options A / B / C (not vague yes/no).
Review readiness dashboard (ASCII)
Before ship, print a table:
| Gate | Status | Notes |
|-------------|--------|-------|
| Tests | ? | |
| Lint/Type | ? | |
| Secrets | ? | |
| Manual QA | ? | |
Completeness gap (code review)
Flag when an 80% solution is chosen but the 100% path costs < 30 minutes (tests, edge case, docs).
Investigate Iron Law
- Do not patch without a root cause hypothesis.
- After three failed fix attempts, stop and question architecture or gather more data.
Access controls (Goose-style)
- Maintain lists: autonomous_ok vs confirm_required skill groups (see
.cm/config.example.yaml). - Respect “stop suggesting skill X” in session notes.
Provider abstraction
Prefer interfaces for LLM calls so cm-second-opinion can swap OPENAI_API_KEY / future providers without rewriting skills.
Proactive skill suggestion
Infer stage from files touched and git state:
- Many
test/edits → suggest cm-test-gate. Dockerfile/ deploy scripts → cm-safe-deploy + cm canary.rm/ migration scripts → cm-guardian + cm-secret-shield.
Voice-friendly triggers (examples)
| Phrase (approx.) | Skill / command |
|---|---|
| “Run a security check” | cm-secret-shield / cm-security-gate |
| “Test the website” | cm browse + cm qa-visual |
| “Code review this” | cm-code-review |
| “Deploy safely” | cm-safe-deploy |
| “Log what went wrong” | cm retro --note "…" |
Use Whisper / AquaVoice → paste transcript; map keywords to the table above.