Install
$ agentstack add skill-furedea-agent-harness-adr ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Architecture Decision Records
This skill governs the execution layer for ADRs: deciding whether an ADR is needed, reading the existing decision history, creating or superseding ADR files, and keeping decision prose out of tests and implementation.
Use this together with tsdd when the work involves both executable behavior and architectural rationale. tsdd owns the methodology; this skill owns the mechanics of recording the decision.
Core Rule
When a change introduces or reverses a broad project decision, create or update an ADR under docs/adr/ as part of the same task.
Do not leave ADR creation as an optional follow-up. If the rationale matters for future maintainers or future agents, record it before finishing the work.
When To Load
Load this skill before making or reviewing changes involving:
- Architecture Decision Records, decision records, ADRs, or
docs/adr/. - Library, framework, database, protocol, hosting, or tooling selection where real alternatives exist.
- Architectural patterns such as server-rendered vs SPA, sessions vs tokens, monolith vs services, sync vs async, polling vs events, or generated vs handwritten artifacts.
- Durable constraints that are not obvious from code, such as "no runtime dependencies", "Nix owns this configuration", or "tests are the only requirements source".
- Reversing, superseding, deprecating, or intentionally rejecting a previous decision.
Do not load it for a local implementation detail that can be understood from the code in under a minute.
Decision Test
Before writing an ADR, ask:
- Would a future maintainer ask "why this approach instead of the obvious alternative?"
- Does the Why span multiple files, components, workflows, or future changes?
- Were meaningful alternatives considered or rejected?
- Would an inline comment either be too narrow or need to be repeated in several places?
If any answer is yes, create an ADR. If all answers are no, prefer code, tests, or a local comment.
Repository Inspection
Before creating or changing ADRs:
- Check whether
docs/adr/exists. - Read existing ADR titles and metadata before choosing a new decision.
- Search existing ADRs for the topic, chosen option, and rejected alternatives.
- If an existing ADR already covers the decision, update code/tests to follow it instead of writing a duplicate.
- If the new decision reverses or materially changes an old one, write a new ADR and mark the old one as superseded.
Use rg --files docs/adr and targeted rg searches when available.
File Layout
Store ADRs here:
docs/
└── adr/
├── 0001-record-architecture-decisions.md
├── 0002-.md
└── 0003-.md
Rules:
- Use one decision per file.
- Use sequential four-digit IDs.
- Never reuse an ID.
- Never delete old ADRs to hide history.
- Use kebab-case for the filename decision slug.
- Create
docs/adr/if it does not exist. - If the repository has no ADRs yet and the task adopts ADRs as a practice, create
0001-record-architecture-decisions.mdfirst.
Status Rules
Allowed status values:
ProposedAcceptedSupersededDeprecated
Default to Accepted when the decision is implemented in the same change. Use Proposed only when the user asked for a proposal or no implementation change is being made.
Past ADRs are immutable except for metadata status changes. Do not rewrite the body of an accepted ADR to make it match a new decision.
When reversing a decision:
- Create a new ADR with the next sequential ID.
- Add
- Supersedes: ADR-NNNNto the new ADR metadata. - Change the old ADR status to
Superseded. - Keep both ADRs in the same commit or change set.
Preferred Template
Use the Y-Statement form by default:
# ADR-NNNN:
- Status: Accepted
- Date: YYYY-MM-DD
In the context of , facing , we decided for and against , to achieve , accepting .
For superseding ADRs:
# ADR-NNNN:
- Status: Accepted
- Date: YYYY-MM-DD
- Supersedes: ADR-0003
In the context of , facing , we decided for and against , to achieve , accepting .
Use the longer template only when a Y-Statement would be too compressed:
# ADR-NNNN:
- Status: Accepted
- Date: YYYY-MM-DD
## Context
## Decision
## Alternatives Considered
## Consequences
Writing Rules
- Write ADRs in English for public repositories.
- Record Why, not What or How.
- Do not duplicate requirements that belong in tests.
- Do not duplicate implementation details that belong in code and types.
- Name rejected alternatives explicitly.
- State the accepted trade-off plainly.
- Keep the ADR short enough that future agents will actually read it.
- Link to related ADRs only when the relationship changes interpretation.
Workflow
For decision-relevant implementation tasks:
- Load
tsddand any language-specific skill required by the code. - Establish the executable behavior with tests when the change has behavior.
- Inspect existing ADRs before choosing or recording the decision.
- Implement the code change.
- Create or supersede the ADR before finishing.
- Run the relevant verification gate.
- Report the ADR path and the verification result.
For documentation-only decision tasks:
- Inspect existing ADRs.
- Decide whether this is a new decision, a duplicate, or a supersession.
- Create or update only the necessary ADR files.
- Run the repository's markdown or generated-artifact checks when available.
- Report the ADR path.
Non-Goals
Do not create ADRs for:
- Ordinary refactors with no architectural choice.
- Language or framework defaults with no project-specific reason.
- Test cases, acceptance criteria, or behavior specs.
- Local code comments that explain one narrow line or block.
- Scratch planning or TODO lists.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: furedea
- Source: furedea/agent-harness
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.