원클릭으로
arib-dev-feature
Dev | Start a new feature with branch, planning, TDD workflow, and safety snapshot
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Dev | Start a new feature with branch, planning, TDD workflow, and safety snapshot
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Memory | Code-graph subsystem — a native lightweight IMPORT graph (which file imports which, god-node candidates) built with ripgrep/grep, so a large monorepo can be navigated by structure instead of re-grepping every session. build/refresh/query. Honest scope: structural import graph, NOT semantic (no call-graph/type resolution); no Graphify dependency. Loads ON DEMAND only (zero always-on tokens). ADR-034.
Dev | Over-engineering review — reads a diff/module and returns a delete-list of bloat (single-use abstractions, premature generalization, speculative config, dead options) WITHOUT stripping legitimate structure. Advisory: returns recommendations, never auto-deletes. The on-demand companion to the ponytail-lite tripwire hook. Authored natively (no Ponytail dependency). ADR-033.
Wave | Pre-wave requirement lock — Act 1 derives the requirements from the codebase + memory (an honest grill, not guesswork), Act 2 hands the locked plan to an independent model (Codex) to tear apart until sign-off. Produces waves/<id>/PLAN.md + PLAN-REVIEW-LOG.md. Auto-chained idempotently from /arib-wave-start. If Act 2 can't run (no Codex), the wave proceeds but HOLDS MERGE for a human. Absorbs grill-me-codex (ADR-032).
Wave | Start a multi-session delivery wave — branch, plan, parallel architect+planner
Engine | Command the engineering team to deliver a known goal — dispatches the engineer-manager to decompose → dispatch specialists (parallel where safe) → integrate → reconcile (verification-agent) → merge gate. Scales its own reach: runs inline for a bounded goal, escalates to a parallel Workflow for a broad one, and paces under /loop for a multi-turn campaign — only when it needs to. Use when a goal needs a coordinated TEAM, not one specialist. Sibling of /arib-engine: the engine DISCOVERS its own backlog; /arib-build EXECUTES a goal you hand it.
Stack | NestJS architecture & patterns reference — modules/providers/DI, DTO+validation, guards/interceptors/pipes/filters, config, async lifecycle, testing, and the security + performance pitfalls that bite at scale. Use when building or reviewing a NestJS backend. Composes with security-auditor (OWASP), database-guardian (TypeORM/Prisma migrations), and performance (N+1). Authored natively (the ECC graft was unsourceable; this is CCM's own, MIT).
| name | arib-dev-feature |
| argument-hint | <feature-name> |
| description | Dev | Start a new feature with branch, planning, TDD workflow, and safety snapshot |
Structured feature development prevents costly mistakes: scope creep that derails timelines, untested code landing in production, lost work from missing recovery points, and undocumented changes that confuse future sessions (or future you). This skill enforces a 7-step protocol that turns feature requests into production-ready code.
Use this skill every time you start a new feature. Do NOT use for bug fixes (use /arib-dev-debug) or pure refactoring (just branch and commit).
/arib-dev-debug)Before writing a single line of code, gather intelligence. This prevents implementing something that already exists or violates project constraints.
Read these files in order:
grep to find similar patterns, existing features, shared utilities you can reuseDecision point: "Does a similar feature already exist? If yes, extend it rather than duplicating."
Outcome: A one-paragraph summary of what the feature needs, what constraints apply, and what it can reuse.
Branch from the project's integration branch — never commit features
directly to it. The integration branch is develop if the repo has one,
otherwise main. Detect it; don't assume.
# Detect the integration branch: prefer develop, else main.
INTEGRATION=$(git show-ref --verify --quiet refs/heads/develop && echo develop || echo main)
git checkout "$INTEGRATION"
git pull origin "$INTEGRATION"
git checkout -b feature/[feature-name]
git push -u origin feature/[feature-name]
(A v3.7 audit found this step hard-coded git checkout develop, which
fails on the common main-only repo — every feature broke at step 2. The
detection above is the fix.)
Branch naming conventions:
feature/user-authentication (kebab-case, descriptive)feature/JIRA-123-user-auth (ticket reference + description)feature/fix-stuff (too vague)feat/auth (use feature/ not feat/)Why remote immediately? Because branches get lost if they only exist locally. Push to remote as your first backup.
Tag the clean state before you start implementing. If things go sideways, this is your ejection seat.
git tag -a feature/[feature-name]/snapshot -m "Safety snapshot before implementing [feature-name]"
git push origin feature/[feature-name]/snapshot
When to use rollback:
git reset --hard feature/[feature-name]/snapshot
git push --force-with-lease origin feature/[feature-name]
Use --force-with-lease instead of --force — it's safer because it rejects the push if someone else has pushed since your last pull.
Create a structured plan document. Present this to the user; do NOT write it to a file yet (they need to approve first).
Format:
## Implementation Plan: [feature-name]
### Scope
[1–2 sentences on what this feature does and who uses it]
### Files to Create
| File | Purpose | Est. Lines |
|------|---------|-----------|
| src/auth/login.ts | Login handler | ~80 |
### Files to Modify
| File | Change | Risk Level |
|------|--------|------------|
| src/routes/index.ts | Add auth routes | Low |
### Tests Required
| Test File | What It Tests | Type |
|-----------|---------------|------|
| tests/auth/login.test.ts | Login flow | Unit |
### Dependencies
- [ ] New packages needed: [list or "none"]
- [ ] Database migrations: [yes/no, describe if yes]
- [ ] Environment variables: [list or "none"]
- [ ] API changes: [describe breaking changes or new endpoints]
### Risk Assessment
- Complexity: [Low/Medium/High]
- Files touched: [N]
- Breaking changes: [Yes/No — explain impact if yes]
- Rollback plan: Safety snapshot at `feature/[feature-name]/snapshot`
Present the plan and ask three explicit questions:
NEVER skip this step, even for "obvious" features. An unexpected scope change discovered here costs minutes; discovered after implementation costs hours.
Wait for explicit approval (yes/confirm/approved) before moving to Step 6.
Follow the RED → GREEN → REFACTOR cycle religiously. This ensures code is both correct and refactorable.
RED Phase: Write a failing test
# Write test that describes expected behavior
# Run test → should FAIL (proves test is meaningful, not a false positive)
GREEN Phase: Write minimum code to pass
# Implement just enough to make the test pass
# Don't optimize yet — just make it work
# Speed > perfection in this phase
REFACTOR Phase: Clean up
# Improve code structure, naming, performance
# Run tests again → should still pass
# If tests break during refactor → revert refactor, try again
Commit after each complete cycle:
git add [specific-files]
git commit -m "feat([scope]): [what was implemented]"
Commit message examples:
feat(auth): add login endpoint with JWT generationtest(auth): add login flow unit testsfeat(auth): wip (work-in-progress)feat: stuff (vague)When TDD doesn't fit:
After all tests pass and code is committed:
npm test or equivalent. All tests must pass.Outcome: Feature is fully documented, tested, and ready for review.
Before writing code, verify:
These cause rework and frustration. Avoid them.
| Mistake | Impact | Fix |
|---|---|---|
| Implementing before planning | Rework, scope creep | Create plan first, get approval |
| Skipping the safety snapshot | Can't rollback cleanly | Always tag before implementing |
| Writing all code then all tests | Tests don't catch real bugs, defeats TDD | Write test first, one cycle at a time |
| Giant commits with mixed concerns | Hard to review, hard to revert | Commit after each RED→GREEN→REFACTOR |
| Not checking CONSTRAINTS.md first | Implementing something that violates rules | Read constraints in Step 1 |
| Pushing to develop/main instead of feature branch | Breaks CI, affects other developers | Always use feature/ branches |
Branch from that feature branch instead of the integration branch:
git checkout feature/dependency-feature
git checkout -b feature/new-feature
Document this dependency in the implementation plan. When the dependency merges, rebase onto the integration branch.
/arib-check-migrate — verify safety and backward compatibilityIf you can't finish in one session:
feat([scope]): WIP - [what's done so far]memory/session_notes.md exactly where you stopped, what's left/arib-dev-review — Review the feature before merging to the integration branch/arib-dev-debug — If bugs arise during implementation/arib-check-perf — Performance check before merge/arib-check-a11y — Accessibility check for frontend features/arib-check-migrate — Database migration safety checkEach step removes a category of risk: