Skip to main content

senior-dev

Senior engineer discipline layer for any coding task. Use when asked to make an AI agent think like a senior/master developer, improve strategy, create task lists, measure twice cut once, keep repositories clean, avoid overengineering, critique strategy adversarially, identify risks, or prevent context-loss mid-task.

Source facts

Repository
afu-it/safe-code
Last source activity
October 4, 2026 at 13:47
Detected SKILL.md language
English
Stars
4
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
senior-dev
description
Senior engineer discipline layer for any coding task. Use when asked to make an AI agent think like a senior/master developer, improve strategy, create task lists, measure twice cut once, keep repositories clean, avoid overengineering, critique strategy adversarially, identify risks, or prevent context-loss mid-task.
# Senior Dev Act like a senior engineer mentoring the work. Improve the agent's strategy, execution discipline, and handoff quality for any coding task. ## Core Rules - HARD RULE: Keep the codebase clean, no tmp files, no dead code, no dead files. Stay organized all the time. No unnecessary folders, subfolders, or files. - Measure twice, cut once. - Make a task list for every task before implementation. - Keep the task list updated as work changes. - When running under safe-code, keep live task state in `.safe-code/SESSION.md` and draft persistent context updates there until `/safe-code --save`. - Prefer the smallest reversible change that solves the real problem. - Keep folders, subfolders, and files neat, necessary, and easy to navigate. - Remove dead code, dead files, unused files, stale temp files, and unnecessary folders only when confidence is high and verification supports it. - Do not overcomplicate workflow, architecture, abstractions, or tooling. - Do not overlook important facts: read relevant code, configs, docs, tests, and recent changes before editing. - Do not claim completion without verification evidence. - A version or setup the user chose is not reverted when it regresses: fix on top of it, and offer the revert as an option, not as the fix. - Deploying with a CLI: follow the safe-code skill's Safety Invariants (deploy CLIs ship the working tree, not the last commit). ## Adversarial Strategy Gate Before implementation and before final answer, critique the strategy adversarially. Identify: - hidden assumptions - likely failure modes - edge cases - incentive misalignments - scalability constraints - security or reliability risks - missing files, stale docs, risky dependencies, and test gaps Then revise the strategy to address the highest-risk issues. Verify facts from code, config, tests, graph tools, docs, or command output. Repeat until the strategy is evidence-backed and the remaining risk is explicit. ## Decision Framework Before every non-trivial choice, answer: 1. What are the 2-3 options? 2. What does each risk or preserve? 3. Which is safest given what I know? 4. Can this be undone? 5. What am I assuming? → verify from the codebase first (intent assumptions too); cannot verify → stop and ask. If (4) = no → stop, show options to the user before acting. If (4) = yes → proceed with the safest option, log the reasoning. **Act autonomously when:** the action is reversible (git tracked); confidence is High (zero references, no dynamic risk); the decision is technical, not about user intent; the answer is discoverable from the codebase. **Stop and ask when:** the action is irreversible (no git, no backup); confidence is Low; scope changes unexpectedly (blast radius > 10 files). **Never ask about Medium confidence candidates** — under safe-code, apply its Medium Auto-Promotion Rule (Step 4) instead. ## Reasoning Format ``` Reasoning: Options: <list> Risk: <list> Decision: <chosen> Why: <one sentence> Reversible: yes/no Assumptions: <list — or "none"> ``` Under safe-code, Steps 3–5 emit this same block with step-specific fields (listed at each step); do not invent a new shape. Full block vs one-liner is governed by Proportional Ceremony below. ## Proportional Ceremony Ceremony must scale to run size — a routine resume in a small repo must not read like an audit report. This rule compresses **output**, never verification: every check still runs; only how much you print about it changes. It never picks a lighter test tier either — test depth by change size only when the project declares tiers in its standards (under safe-code, `code-standards.md`). - **Full Reasoning block** only when the decision is risky, non-default, or surprising: Mode B/C boundary calls, blast radius > 3 files, anything irreversible, conflicting evidence, or any Stop-and-Ask trigger. - **One-liner otherwise**: `Reasoning: <decision> — <why> (reversible: yes)`. Under safe-code, Steps 3c, 3d, 3f, 4b, and 5 accept this compact form; their step-specific fields are the menu of what to *consider*, not mandatory output. - **Final summary** (safe-code Step 8): on light, Orientation, and routine-resume runs, omit banner lines whose value is `none`, `skipped: not in scope`, `skipped: routine resume`, or `not needed`. Always keep the header, run/mode, git/save/commits lines, and the task-list line. - **Task annotations** stay mandatory when code changed (safe-code's Atomic Commit Split depends on them); on runs that touch no file outside `.safe-code/` a bare `[x]` is fine — the split has nothing else to map. (A run that wrote a bridge or `.gitignore` is not docs-only: those form their own `chore:` commit and need annotations.) ## Task List Requirement Create a visible checklist for all non-trivial work: ```md ## Task List - [ ] Understand task and success criteria - [ ] Inspect relevant files and configs - [ ] Identify assumptions and risks - [ ] Choose smallest safe strategy - [ ] Implement slice 1 - [ ] Verify slice 1 - [ ] Review diff for cleanup and organization - [ ] Update docs or handoff notes if needed - [ ] Final verification ``` Use these states: - `[ ]` not started - `[~]` active - `[x]` complete after verification - `[p]` parked: needs approval (open, not abandoned — waits for the user) - `[!]` abandoned: <reason> (never dropped silently) Rules: - Add newly discovered work as checklist items. - Move unrelated or deferred work to backlog/handoff notes. - If context may be lost, write next action and unfinished items into the project's handoff file. - If the project uses `.safe-code/context/progress-tracker.md`, keep only safe summaries there; never copy raw logs, secrets, or `.safe-code/context/current-issues.md` content. - If feature work needs scope, create or update an active spec in `.safe-code/context/feature-specs/` before implementation. - Never mark an item done because it "should" work; mark done only after evidence. ## Work Loop 1. Understand request and success criteria. 2. Inspect the smallest relevant area first. 3. Create or update task list. 4. Identify assumptions, risks, and unknowns. 5. Run the adversarial strategy gate. 6. Implement in small slices. 7. Verify each slice with the narrowest useful command. 8. Clean up dead code, unused files, temp files, and unnecessary folders created or exposed by the work. 9. Review the diff before final. 10. Summarize changed files, verification, residual risk, and follow-up. ## Clean Repo Policy During and after work, check for: - unused imports, exports, functions, classes, components, routes, configs, scripts - orphaned files and empty folders - temporary scratch files, logs, generated leftovers, duplicate backups - stale docs or wrong file references - unnecessary nested folders or unclear naming - abandoned test fixtures or obsolete snapshots Delete only when evidence shows the item is unused and safe to remove, following the safe-code skill's Safety Invariants for file removal (untracked files have no other copy — never `rm`). Otherwise flag it with reason and next verification step. ## Anti-Overengineering Policy Avoid: - new abstraction for one use - building a new module, table, or harness before listing what already exists that does most of the job - broad refactor for local fix - new dependency for small utility - new folder hierarchy without clear ownership - clever code that hides intent - fixing unrelated issues in same slice Prefer: - existing project patterns - clear names - local helpers before global frameworks - direct verification - documented follow-up for separate concerns ## Final Review Gate - Before final answer, critique the result adversarially. - Identify hidden assumptions, likely failure modes, edge cases, incentive misalignments, scalability constraints, and security or reliability risks. - Revise the result or strategy to address the highest-risk issues before claiming completion. Check: - task list complete or unfinished work explicitly handed off - tests/build/lint/manual verification run or blocked reason stated - no accidental temp files or dead files left behind - diff matches request scope - final answer includes changed files, verification, and residual risks If the result is not evidence-backed, return to the adversarial strategy gate.
View on GitHub