Skip to content
Agentmart
Submit a tool

engineering

Core technical, safety, and maintainability rules for codebase edits.

Skill by nrdxp

IndexedMIT★ 10
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nrdxp-engineering

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Core technical, safety, and maintainability rules for codebase edits. Trigger when: - Writing code, refactoring, modifying files, or creating unit tests. - Proposing commits, reviewing git history, or auditing code quality. - Modifying files in any programming language (e.g. *.go, *.rs, *.py, *.ts, *.js, *.c, *.cpp). - Prompt contains keywords: refactor, build, compile, lint, test, git, commit, rule priority, type safety, error handling, defensive programming.

Use cases: testing, writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/engineering

What's inside

Skill name
engineering
Description
Core technical, safety, and maintainability rules for codebase edits. Trigger when: - Writing code, refactoring, modifying files, or creating unit tests. - Proposing commits, reviewing git history, or auditing code quality. - Modifying files in any programming language (e.g. *.go, *.rs, *.py, *.ts, *.js, *.c, *.cpp). - Prompt contains keywords: refactor, build, compile, lint, test, git, commit, rule priority, type safety, error handling, defensive programming.
License
MIT
Instructions
287 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Engineering

## Always-On Principles

These constraints bind every code edit without skill invocation. They are the
standing SWE law promoted into the always-on conditioning layer; deviation
requires explicit justification and human approval. Detailed elaboration follows
in the [By-Moment Reference](#by-moment-reference) below.

### Root Cause — Never a Band-Aid

A fix that papers over a symptom — a compatibility shim, a workaround that lets
a broken design survive, an exception added to silence a warning — is a defect,
not a solution. The cause MUST be fixed. If the fix requires more than local
changes, HALT and discuss the scope before proceeding; do not re-architect
silently.

Compatibility hacks are forbidden. Additions beyond the stated task are
forbidden (the Cutting Imperative: do not add features, abstractions, or cleanup
not present in the task). When removing code, cut completely — compatibility
scaffolding for removed code is entropy that must later be audited for meaning.

### No Silent Failures

Every error path MUST be handled or propagated, preserving the causal chain.
Error messages MUST state **what** failed, **why**, and **where** — opaque
messages such as "invalid input" are forbidden. Library code MUST NOT panic; it
MUST return `Result`/`Option` to the caller. Application entry points convert
errors to exit codes with clear messages. Secrets, tokens, and PII MUST NOT
appear in logs.

### Validate at Boundaries; Trust Internal Invariants

All external inputs MUST be validated at system entry points (user input, API
responses, file contents, IPC). Internal call sites MUST NOT add defensive
guards against conditions the type system or framework invariants already rule
out — that is unnecessary error handling that obscures where the real boundaries
are. Validate the perimeter; trust what the perimeter enforced.

### Strong Typing — No Escape Hatches

Use the type system to enforce invariants. `any`, `interface{}`, or their
language equivalents MUST NOT be used unless genuinely necessary; when used, the
specific reason MUST be documented inline. Library code MUST NOT panic.

### Discrepancy Resolution — Never Silent

When specification, tests, and code disagree, HALT immediately. Present the
discrepancy with evidence from each source and propose a resolution. Do not
silently pick a winner; do not proceed until the conflict is resolved.

### Trajectory Freeze Conditions

Stop generating and query for boundary updates whenever:

- Goal or context is contradictory or missing (uncertainty > 0.0).
- Environment state diverges from planned invariants (expected files missing,
  API mismatch).
- Verification tools fail to converge after the corrective loop.
- Multiple valid paths exist with no constraint selecting among them.

Generating under unvalidated assumptions is forbidden. Guessing a corrective
edit from ambiguous feedback is forbidden. Halting to receive parameters is
faster than correcting trajectory drift.

---

## By-Moment Reference

The sections below elaborate *how* to apply the always-on principles in
practice: clarification protocols, uncertainty thresholds, language-specific
rules, and conventions. Load this reference when actively writing or reviewing
code.

---

### Clarification Triggers

Invoke clarification under these conditions:

1. **Undefined Scope:** The request could range from trivial to architecturally significant.
2. **Missing Acceptance Criteria:** There is no clear definition of "done."
3. **Implicit Assumptions:** The request relies on unstated assumptions about the codebase or domain.
4. **Conflicting Constraints:** The request appears to conflict with an existing rule or prior decision.

### Uncertainty Thresholds

| Uncertainty Level | Criteria                                              | Action                                                                          |
| :---------------- | :---------------------------------------------------- | :------------------------------------------------------------------------------ |
| **None (0.0)**    | Clear requirement, established pattern, no ambiguity. | Proceed. If the change is API-breaking, still confirm.                          |
| **Low (0.1-0.3)** | Explicit constraints with minor implementation ambiguities. | Present implementation path and query for targeted constraint boundaries before proceeding. |
| **High (>0.3)**   | Multiple valid interpretations, conflicting constraints. | Halt sequence walk and request specific boundary parameter corrections.           |

When in doubt, err toward halting. Wasted clarification is cheaper than trajectory drift.

> [!NOTE]
> This table applies to general execution. In C.O.R.E. planning, the
> ambiguity gate uses a qualitative `OBSTACLES` list: the list must be
> empty before the sequence may advance from CLARIFY to PLAN. There is
> no numeric uncertainty field in the C.O.R.E. grammar.

---

### Rule 0: Context Acquisition (The "Read-First" Rule)

Before writing code, understand the existing landscape:

1. **Outline First:** Read file outlines to understand structure.
2. **Targeted Read:** Read specific functions, modules, or types relevant to the change.
3. **Contextual Files:** Read related files (tests, interfaces, callers) to understand usage patterns.
4. **Full Read:** Only for small files (<500 lines) or major refactors.

**Pattern Matching:** Mimic existing directory structure and coding style strictly. Do not introduce foreign idioms. When uncertain, search for prior art in the repo (e.g., "How are errors handled elsewhere?") and follow established patterns.

> **Tip:** If MCP tools are available, use them first for structural insight before reading individual files.

### Rule 1: Root Cause Analysis

Never apply band-aid fixes. Analyze root causes; re-architect if the foundation is flawed. If a fix requires more than local changes, stop and discuss the broader implications.

From nrdxp/predicate, MIT.

More from nrdxp/predicate

Signals

Stars
10
Forks
2
Open issues
1
Last commit (this folder)
Jun 26, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from nrdxp

Cite this page

engineering skill. Agent Mart. https://agentmart.dev/skills/nrdxp-engineering (last updated 2026-10-24)