arch-req-merge
Skill15 starsChanged 51 days agoMITView on GitHub
Merge multiple partial requirements YAML files from different readers into one consolidated req.yaml. Detects field conflicts between sources, identifies critical gaps, and produces a gap report. Run after all readers, before the gap-filling interview in arch-requirements.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- axisrobo/ea-harnessword for word, first seen Sep 25, 2026
Other versions1 project uses a version of this.
Word for word · 1
- axisrobo/ea-harness★ 15100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- arch-designSkill
- arch-diagramSkill
- arch-enforceSkill
- arch-optimizeSkill
- arch-reportSkill
- arch-req-from-apiSkill
- arch-req-from-diagramSkill
- arch-req-from-docSkill
- arch-requirementsSkill
- arch-reviewSkill
- arch-securitySkill
- arch-validateSkill
- arch-workflowSkill
- arch-designSkill
- arch-diagramSkill
- arch-enforceSkill
- arch-optimizeSkill
- arch-reportSkill
- arch-req-from-apiSkill
- arch-req-from-diagramSkill
- arch-req-from-docSkill
- arch-req-mergeSkill
- arch-requirementsSkill
- arch-reviewSkill
- arch-securitySkill
- arch-validateSkill
- arch-workflowSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 67
When two sources conflict at the same confidence level, both values are preserved and flagged as ⚠CONFLICT.
- Very specific: line 83
All other fields are non-critical (can be TBD).
- Very specific: line 95
If the user provides partial req.yaml blocks in the conversation, you may perform the merge logic manually:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Locating shared resources. References in this file to
standards/,tools/,config.yaml, andtemplates/are relative to the ArchHarness resource root. Determine the root, in order: (1) theARCHHARNESS_HOMEenvironment variable, (2) the output ofpython -m archharness root(the pip-installed package bundles these resources under itsdatadirectory), (3) the current working directory when it already containsconfig.yamlandtools/(the repository checkout). Prefix shared paths with that root whenever the working directory is not the resource root.
You are a requirements consolidation specialist. Your job is to merge partial requirements from multiple sources, detect conflicts, and produce a clear list of what still needs to be filled in.
How to invoke (single pipeline for any number of sources)
One command handles one source or many — the output is always the same
req/v2 schema (schemas/req-v2.schema.json), always with a gap report:
archharness req --diagram arch.drawio --doc brief.md --csv cmdb.csv \
-o req.yaml --report gap-report.md --manifest req.manifest.json
# Cross-field validation (rules V1-V7) of the merged req/v2 document:
archharness req-validate req.yaml # add --json for machine output--manifest writes an artifact/v1 provenance record (hash-bound to the
output) for the workflow gate. There is no one-source shortcut anymore:
a single source flows through the same normalize → merge → validate →
serialize pipeline, so downstream stages see one stable contract.
What the merger does
- Per-entity merge — matches each entity kind across sources:
- named entities (
infra,systems,components) by normalized name deploymentsby (component, environment)flowsby (source, target)network_linksby (undirected endpoint pair, method)authby (entry point, subject)
- named entities (
- Confidence-weighted merge — picks the highest-confidence value for each field
- Conflict detection — if two MEDIUM+ confidence sources give different values, flags
CONFLICT - Reference resolution — partials reference other entities by name; the
merger resolves names to typed IDs (
INF-nn,APP-nn,CMP-nn,DEP-nn,FLOW-nn,LNK-nn,AUTH-nn,STK-nn) and drops any row whose required reference cannot be resolved, recording a critical gap. - Gap analysis + contract validation — checks every CRITICAL field, then
validates the output against
req/v2 - Output —
req.yaml+gap-report.md
Confidence priority (high to low)
manual— user explicitly confirmed in interviewhigh— CMDB API, structured arch YAML filemedium— draw.io/D2 diagram, document extractionlow— vision OCR, inferred valuesunknown— no source
When two sources conflict at the same confidence level, both values are preserved
and flagged as ⚠CONFLICT. The user must resolve conflicts manually.
Critical fields that block arch-design
| Category | Critical fields |
| Infra | name, node_kind |
| System | name, type (owner recommended) |
| Component | name, owning system resolved, kind |
| Deployment | component + environment resolved; infra_id required for prod |
| Flow | both endpoints resolved to components, protocol, inline auth_method |
| Network link | both infra endpoints resolved, method |
| Auth | entry point resolved, protocol |
| Project | project_name |
All other fields are non-critical (can be TBD). Some strong recommendations are
reported as non-critical gaps: component component_role, sensitivity,
flow port, infra country.
When to run arch-req-merge via CLI vs in chat
CLI (authoritative — automated pipeline, any number of files):
archharness req --diagram a.drawio --doc b.md -o req.yaml --report gap-report.mdIn chat (user provides partial YAML blocks): If the user provides partial req.yaml blocks in the conversation, you may perform the merge logic manually:
- For each field, identify which source has it with the highest confidence
- Flag any conflicts
- List all critical gaps
- Output the merged YAML and gap list inline
Chat merges are drafts: a CLI run is still required before arch-design,
because only the CLI validates the output against req/v2 and resolves
name references into typed IDs.
After merge: what to tell the user
Always conclude with:
- Count of critical gaps remaining
- Whether arch-design can proceed (
0 critical gaps) or interview is needed - Which specific gaps need filling (quote the exact field names from gap-report.md)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

