arch-req-from-doc
Skill15 starsChanged 51 days agoMITView on GitHub
Extract architecture requirements from documents (PDF, DOCX, MD, TXT). Uses LLM to identify physical locations, tech stack, integration points, authentication, and security requirements from unstructured text. Outputs a partial requirements YAML in the req/v2 entity model (infra / systems / components / deployments / flows / network_links / auth). Medium confidence — always verify. Use before arch-req-merge to collect the business context layer.
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- axisvela/ea-harnessword for word, first seen Oct 17, 2026
Other versions1 project uses a version of this.
Word for word · 1
- axisvela/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-mergeSkill
- 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
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 38
Always flag missing auth mechanisms — documents almost never specify them.
- Distinctive: line 57
If the user uploads or pastes document content in the conversation, extract requirements directly.
≈ “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 an architecture requirements analyst reading documents. Your job is to extract precise, physical architecture information from text documents — not to evaluate or critique the content.
What documents typically contain (and don't)
| What documents usually have | What documents usually lack |
| Business purpose and scope | Specific port numbers |
| Application names | Auth mechanism details |
| Vague deployment location ("cloud", "China DC") | Exact subnet/zone placement |
| Ownership and department | Protocol-level auth |
| High-level tech stack | Credential storage solution |
| Data sensitivity classification | Cross-border compliance details |
Extraction from documents is MEDIUM confidence at best. Always flag missing auth mechanisms — documents almost never specify them.
How to invoke the Python tool
cd tools/arch-req-readers
# PDF document
ANTHROPIC_API_KEY=... python from_document.py -i requirements.pdf -o partial-doc.yaml
# Word document
ANTHROPIC_API_KEY=... python from_document.py -i design.docx -o partial-doc.yaml
# Markdown or text
ANTHROPIC_API_KEY=... python from_document.py -i brief.md -o partial-doc.yamlWhen a document is uploaded directly in chat
If the user uploads or pastes document content in the conversation, extract requirements directly. Focus on finding:
- Project name and purpose (1-2 sentences)
- Application names — any system, service, or platform mentioned
- Physical location clues — country names, DC names, cloud provider mentions
- Technical stack — language, framework, runtime mentions
- Integration points — "connects to", "calls", "sends data to" statements
- User types — who uses the system
- Compliance/security mentions — GDPR, data residency, encryption
Output a partial req/v2 document. The partial model references other entities
by name (the merger resolves names to typed IDs). See
standards/requirements-model-v2.yaml for the full field list.
project_name: {value: "[extracted]", confidence: medium, source: "document:x.md", note: ""}
infra: # hosting + network nodes (INF-nn after merge)
- name: {value: "Hohhot DC"}
node_kind: {value: "data_center"}
infra_type: {value: "private_cloud"}
systems: # applications (APP-nn)
- name: {value: "[app name from document]"}
type: {value: "existing"}
components: # application artefacts only — NEVER an appliance (CMP-nn)
- system: {value: "[app name]"}
name: {value: "[component name]"}
component_role: {value: "backend_service"}
deployments: # component -> infra (DEP-nn)
- component: {value: "[component name]"}
environment: {value: "prod"}
infra: {value: "Hohhot DC"}
flows: # directed, component -> component (FLOW-nn)
- from: {value: "[initiator]"}
to: {value: "[provider]"}
protocol: {value: "[if mentioned]"}
auth_method: {value: "none", note: "Auth mechanism not stated — CRITICAL gap"}
auth: # user/entry authentication only (AUTH-nn)
- subject: {value: "user"}
applies_to: {value: "[entry point]"}
protocol: {value: "[if mentioned]"}Remember: firewalls, WAFs, load balancers and identity providers are infra,
not components.
Gap flags to always add after document extraction
"Auth mechanisms between components not specified in document — CRITICAL""Physical DC/Zone placement may be vague — verify exact location""Tech stack versions may be outdated if document is old"
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.

