
Fusion Code Conventions
Install this when your repo has ADRs or contributor docs and you want every implementation and review checked against that constitution—not ad-hoc style opinions.
Overview
fusion-code-conventions is an agent skill most often used in Ship (also Build) that acts as a project constitution layer, enforcing ADRs and contributor docs while flagging stale or contradicted decisions.
Install
npx skills add https://github.com/equinor/fusion-skills --skill fusion-code-conventionsWhat is this skill?
- Discovers ADRs and contribute/ docs before any review or implementation feedback
- Enforces violations of recorded decisions unless a superseding ADR or doc update exists
- Challenges stale ADRs contradicted by current tooling or practice
- Runs in parallel with language agents on implementation and review tasks
- Treats silent drift from documented decisions as the primary risk
Adoption & trust: 736 installs on skills.sh; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have ADRs and contributor guides, but reviews still miss when code silently diverges from recorded decisions—or blindly follow docs that no longer match your stack.
Who is it for?
Repos with ADRs or contribute/ documentation where you want constitutional enforcement layered on every code review and implementation pass.
Skip if: Greenfield or hobby repos with no ADRs and no contributor documentation—there is nothing to enforce.
When should I use this skill?
Reviewing or implementing code in a project that has ADRs or contributor documentation; activate in parallel with language agents on those tasks.
What do I get? / Deliverables
Reviews and implementations are checked against discovered decision records, with clear flags for unauthorized drift and recommendations to revisit outdated laws.
- Review feedback mapping code to ADR/contribute obligations
- Flags for silent drift and recommendations to supersede stale decisions
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Code review and merge readiness is the canonical shelf for a constitutional checker that runs alongside language-specific review agents. The skill enforces recorded decisions during review and flags silent drift before code ships, which maps directly to the review subphase.
Where it fits
Before merging an API client change, verify it does not violate an ADR that forbids direct third-party calls without an adapter.
Run alongside your TypeScript reviewer so every PR comment includes whether diffs respect recorded layering decisions.
When patching production hotfixes, challenge an ADR that still mandates a deprecated runtime instead of rubber-stamping the fix.
How it compares
Use as a governance checker on top of generic lint/review skills, not as a substitute for language-specific or security review.
Common Questions / FAQ
Who is fusion-code-conventions for?
Solo and indie builders (and small teams) maintaining projects that document architecture and contribution rules in ADRs or contribute/ folders and want agents to honor that record during review and implementation.
When should I use fusion-code-conventions?
During Ship review before merge, during Build when implementing features that touch architectural boundaries, and whenever you run parallel language agents on diffs—any time recorded decisions should constrain the change.
Is fusion-code-conventions safe to install?
It is read-and-reason oriented around your docs and code; review the Security Audits panel on this Prism page and your org policy before enabling it on proprietary repositories.
SKILL.md
READMESKILL.md - Fusion Code Conventions
# Constitution Agent ## When to use Use this agent mode whenever reviewing or implementing code changes in a project that has ADRs or contributor documentation. Its job is to act as the project's constitutional layer: **decisions recorded in ADRs and `contribute/` docs are law** — but the agent also flags when those laws appear stale, contradicted by current tooling, or misaligned with actual practice. Activate in parallel with language agents on any code review or implementation task where the project has ADRs or contributor docs. ## When not to use Do not use for projects with no ADRs and no contributor documentation — there is no constitution to enforce. ## The constitution principle > Recorded decisions represent the reasoning at a point in time. They are authoritative until superseded. Code that violates them without a corresponding update to the decision record is a silent drift — and silent drift is the most dangerous kind. The agent's job is twofold: 1. **Enforce**: flag code that violates a recorded decision without a new ADR or doc update authorising the deviation. 2. **Challenge**: flag decisions that appear outdated, contradicted by current tooling, or obviously misaligned with modern practice — and recommend they be revisited rather than silently ignored or mindlessly followed. --- ## Step 1 — Discover the constitution Before reviewing anything, locate all project decision documents: 1. **ADRs** — look in `docs/adr/`, `adr/`, `docs/decisions/`, or any directory named after a common ADR convention (`0001-*.md`, `YYYYMMDD-*.md`). 2. **Contributor docs** — look in `CONTRIBUTING.md`, `contribute/`, `.github/CONTRIBUTING.md`, `.github/copilot-instructions.md`, `AGENTS.md`. 3. **Inline policy files** — `SECURITY.md`, `CODEOWNERS`, `.editorconfig`, `biome.json`, `tsconfig.json`. Read all discovered documents. Build a mental model of: - What patterns and technologies are mandated - What patterns are explicitly prohibited - What rationale was given for each decision - When the decision was made (date, PR, or version reference if present) --- ## Step 2 — Enforce active decisions For each ADR or contributor rule that is **not** marked as superseded or deprecated: ### The code must conform Flag any code change that deviates from a recorded decision as a **constitutional violation**: ``` ⛔ Constitutional violation — ADR-007: Service-to-service calls must use the internal HTTP client, not raw fetch. Found: `await fetch('/api/items')` Required: `await httpClient.get('/api/items')` ADR: docs/adr/0007-http-client.md ``` Include: - The ADR or doc reference - The exact rule violated - The affected code - The compliant alternative ### Deviations require a new decision record A deviation is only acceptable when: - A new ADR explicitly supersedes the old one, **or** - The contributor docs have been updated to reflect the new direction, **and** - The change is accompanied by a note referencing the updated record If neither condition is met, recommend the developer either comply with the existing decision or open a new ADR before merging. --- ## Step 3 — Challenge stale or misaligned decisions Not all recorded decisions age well. Flag a decision as **potentially stale** when any of the following apply: ### The tooling has moved on The decision mandates or prohibits a technology that has since been superseded by the project's own toolchain. ``` ⚠️ Stale decision — ADR-003 mandates Webpack for bundling, but the project now uses Vite (detected: vite.config.ts, @vitejs/plugin-react in package.json). Recommend: review and supersede ADR-003, or confirm Vite is an undocumented exception. ``` ### The decision contradicts current practice everywhere The decision is consistently violated across the entire codebase with no apparent friction — suggesting it was never really adopted. ``` ⚠️ Unenforced decision — CONTRIBUTING.md requires conventional commits, but the last 20 commits in git log use free