write-technical-brief — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited write-technical-brief (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when a feature has been specced and needs to be handed to engineering in a form they can act on. It adds the most value when:
write-feature-request session to produce both the FR and the engineering handoff in a single workflowThe skill works best with a Feature Request markdown document produced by the write-feature-request skill, but accepts any structured or unstructured spec. Provide one of the following:
A Feature Request markdown file (preferred):
Path: ./feature-requests/FR-0042-export-filters.mdA pasted FR description:
Feature: Saved Export Filters
Users need to save their filter configurations so they don't have to re-apply them
every time they export data. Filters include: date range, team, project, status.
ACs:
- Users can name and save a filter configuration
- Saved filters appear in a dropdown on the export screen
- Users can delete saved filters
- Filters are user-scoped (not shared across the team)Optionally, existing technical notes or architecture context:
Current export system: server-side rendered, filters applied as query params.
No persistent filter storage exists today. Auth is session-based.
User settings currently stored in users table (PostgreSQL).If architecture context is provided, it is used to make the constraints and integration points sections more concrete. If none is provided, constraints are derived from the FR alone and flagged for validation.
The skill follows five steps to transform a Feature Request into an engineering handoff document.
Before reading the FR, silently scan the project for context that will enrich the constraints and integration points sections:
# Architecture docs
find . -maxdepth 3 \( -name "ARCHITECTURE.md" -o -name "architecture.md" -o -name "TECH-STACK.md" \) 2>/dev/null | head -5 | xargs cat 2>/dev/null
find . -maxdepth 3 -type d \( -name "adr" -o -name "architecture" \) 2>/dev/null | head -3
# Tech stack
cat README.md 2>/dev/null | head -80
cat package.json 2>/dev/null || cat Cargo.toml 2>/dev/null || cat go.mod 2>/dev/nullUse any found artefacts to:
If nothing is found, continue from Step 1 as normal. Do not mention the scan to the user.
The skill reads the full FR and extracts:
This inventory becomes the foundation for every subsequent step. If the FR is missing a problem statement or ACs, the skill notes the gap and proceeds with what is available.
From the requirements inventory, the skill draws explicit scope boundaries:
Example: If the FR is for saved export filters, out of scope would explicitly state: "Shared/team-level filters, filter templates, scheduled exports using saved filters, mobile export UI."
Constraints are conditions the implementation must respect, regardless of how engineering chooses to build the solution. The skill identifies constraints in four categories:
Constraints derived from architecture context are marked as Confirmed. Constraints inferred from the FR alone are marked as Assumed and flagged for validation by engineering.
Edge cases are scenarios the ACs do not explicitly cover but that engineering will encounter during implementation. The skill works through the requirements systematically and asks: "What happens when...?"
For each edge case identified, the skill provides:
Edge cases are presented as a table (see Output Format). If the recommended handling requires a PM decision, the row is marked with Open? = Yes and the question is surfaced in the Open Questions section.
Open questions are decisions engineering needs the PM to make before they can start building. They fall into two categories:
Each open question is numbered, written as a direct question, and accompanied by the context that makes it important.
The skill saves the technical brief as technical-brief-[feature-slug].md in the current project directory, where [feature-slug] is derived from the FR title in kebab-case (e.g. technical-brief-saved-export-filters.md). The output follows this structure:
# Technical Brief: [Feature Name]
**Source FR:** [filename or "Pasted input"]
**Date:** [date]
**Status:** Draft — pending PM sign-off on open questions
---
## Scope
### In Scope
- [Discrete deliverable 1 — one line each]
- [Discrete deliverable 2]
- [...]
### Out of Scope
- [Thing a reader might assume is included, explicitly excluded]
- [...]
---
## Constraints
| Type | Constraint | Confirmed / Assumed |
|---|---|---|
| Technical | [constraint] | Confirmed |
| Compliance | [constraint] | Assumed — validate with [team/person] |
| Dependency | [constraint] | Confirmed |
| Performance | [constraint] | Assumed — validate with [team/person] |
---
## Edge Cases
| Scenario | Recommended Handling | Open? |
|---|---|---|
| [What happens when X] | [Recommended approach from PM perspective] | No |
| [What happens when Y] | [Recommended approach — see Open Question #2] | Yes |
---
## Open Questions for PM
1. **[Short label]:** [Direct question]. Context: [Why this matters and what the impact of each option is.]
2. **[Short label]:** [Direct question]. Context: [...]
---
## Integration Points
- **[System / Service name]:** [How this feature touches it — read, write, or depends on. One sentence each.]
- [...]
---
## Out of Scope (Explicit List)
The following are explicitly excluded from this implementation. Do not design for these unless the scope is formally revised:
- [Item]
- [Item]Once the brief is saved, surface this to the user:
"To route this to engineering for review, /superpowers:requesting-code-review walks through the handoff."This document describes the problem space, not the solution. Every question of "how should this work technically?" becomes an open question for engineering to answer — not a decision in this document. The technical brief should never include:
If a constraint implies a technical direction, state the constraint, not the direction. For example: "Filters must persist across sessions" is a constraint. "Store filters in the user_preferences table" is a solution design decision that belongs to engineering.
A well-scoped technical brief is 1–2 pages. If the document runs longer, one of two things is true:
If the output exceeds 2 pages, the skill will flag this and recommend either scoping down or scheduling a PM review session to resolve the open questions before handoff.
Ask your assistant to write a technical brief by saying things like:
This skill will automatically, run the five-step process, and save the result as a technical-brief-[slug].md file in your project directory.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.