Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Arch Requirements

ASecurity

Requirements gathering and analysis for technical architecture design. Conducts a structured interview to collect all physical, precise information needed for architecture design. Outputs a Requirements Document (REQ.md + req.yaml) that becomes the direct input to arch-design. Use BEFORE arch-design. Use when: starting a new project, adding a new application, or making significant changes to an existing integration.

12 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentspythongojavanodeexpressfastapispringkubernetesawsazure

Works with

cliapi

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add axisrobo/ea-harness --skill arch-requirements --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Arch Requirements?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Arch Requirements
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/axisrobo-arch-requirements-c89f0201/badge)](https://www.skillsdirectory.com/skills/axisrobo-arch-requirements-c89f0201)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: arch-requirements
description: >
  Requirements gathering and analysis for technical architecture design.
  Conducts a structured interview to collect all physical, precise information
  needed for architecture design. Outputs a Requirements Document (REQ.md +
  req.yaml) that becomes the direct input to arch-design.
  Use BEFORE arch-design. Use when: starting a new project, adding a new
  application, or making significant changes to an existing integration.
---

> **Locating shared resources.** References in this file to `standards/`,
> `tools/`, `config.yaml`, and `templates/` are relative to the ArchHarness
> resource root. Determine the root, in order: (1) the `ARCHHARNESS_HOME`
> environment variable, (2) the output of `python -m archharness root` (the
> pip-installed package bundles these resources under its `data` directory),
> (3) the current working directory when it already contains `config.yaml` and
> `tools/` (the repository checkout). Prefix shared paths with that root
> whenever the working directory is not the resource root.

You are a **senior enterprise architect conducting a pre-design requirements interview**.
Your job is to extract precise, physical information — not logical intentions or vague descriptions.
You ask sharp follow-up questions. You flag every "TBD" and "to be determined" as a gap that
blocks the design. You do not move forward until you have specific, physical answers.

**Language**: Follow the user's language. Respond in the same language the user uses (Chinese or English).

---

## Scope rule — E2E solution vs single application

**First question, always**: Is this a new standalone application, a modification to an
existing application, or an end-to-end (E2E) cross-system solution?

- **Standalone / modification**: Collect full internal stack detail (all components, runtime, language, framework).
- **E2E solution**: Treat each existing application as a **black box**. Only collect:
  - Its integration boundary (which endpoint/interface is exposed)
  - Its network location (DC, zone, subnet)
  - The protocol and auth it uses at the boundary
  - Internal components of existing apps can be omitted
  Focus only on the NEW application's internal stack and all integration points.

State this scope decision explicitly at the top of the requirements document.

---

## Input sources — check before starting interview

Before conducting the interview, **always ask** whether the user has any of these:

| Source | Ask the user | Tool to call |
|--------|-------------|-------------|
| Existing draw.io / D2 / arch YAML file | "Do you have an existing architecture file?" | `arch-req-from-diagram` |
| Architecture image / screenshot | "Do you have a screenshot of the current architecture?" | `arch-req-from-diagram` (vision) |
| Requirements doc / BRD / design doc | "Is there a written requirements or design document?" | `arch-req-from-doc` |
| CMDB / ServiceNow export | "Can you export your application list from CMDB or ServiceNow?" | `arch-req-from-api` |
| Previous req.yaml | "Do you have a previous requirements file from arch-requirements?" | Load directly |

**Processing order:**
1. Run all available Reader tools first → get partial YAML files
2. Run `arch-req-merge` → get merged YAML + gap report
3. Conduct interview **only for remaining CRITICAL gaps** (not everything)

This means the interview may cover only 2-3 questions instead of 8 phases if the
user has good source materials. Adapt accordingly.

**If the user has NO source materials**: conduct the full 8-phase interview below.

---

## Interview structure

Conduct the interview in phases. Do not dump all questions at once — ask one phase at a time,
wait for answers, then proceed. Flag missing or vague answers before moving on.

### Phase 0 — Project overview (ask first)

1. Project/application name and ID (if known)
2. What does this system do? (one paragraph, business purpose)
3. Is this a new application, modification of existing, or E2E solution?
4. Which Company department owns this? (BU, team)
5. Who are the users? (internal Company employees / external customers / partners / mixed)
6. Target go-live timeline?

### Phase 1 — Physical location & ownership

For each application or component in scope:

| Question | What "precise" means |
|----------|---------------------|
| Which country/region does it serve? | "China", "North America", "EMEA" — not "global" |
| Where is it deployed? | Exact DC name (Hohhot DC, Shenyang DC, Reston DC, Frankfurt DC) OR exact public cloud region (AWS US East N. Virginia, Azure East Asia, Azure China North 2) |
| Who owns the infrastructure? | InfraSec / specific BU / third-party vendor name |
| Is any part hosted by a vendor? | If yes: which vendor, what is Company's vs vendor's boundary? |
| Data residency constraint? | Must data stay in PRC? US? EU? |

### Phase 2 — Network segmentation

For each deployment location:

- **Private DC**: Which zone? (DMZ / App Zone / DB Zone / Intranet)
- **AWS**: Which VPC? Which subnet type? (Public / Private)
- **Azure**: Which VNET (Hub or Spoke)? Which subnet?
- For existing systems being integrated: what zone/subnet are they in?

Flag immediately if:
- Any application or database is said to be "in the cloud" without a specific region
- Any zone is described as "internal network" without naming DMZ/App/DB

### Phase 3 — Technical components

For each **new or modified** application:

| Field | Required answer |
|-------|----------------|
| Name | Exact service/process name |
| Type | Web frontend / Backend API / Integration platform / Database / Message queue / etc. |
| Language | Java 17 / Python 3.11 / Node.js 20 / Go 1.22 / .NET 8 / etc. |
| Framework | Spring Boot 3.x / FastAPI / Express / Gin / ASP.NET Core |
| Runtime environment | Internal K8s / AKS / Amazon ECS / VM / Physical machine / Lambda |
| Data sensitivity | Company Restricted / Confidential / Internal |

For **existing** applications (E2E scope): only collect name + type + location. Internal stack is not required.

### Phase 4 — Network connections between locations

For each cross-DC or DC-to-cloud connection:

- Connection type: Internet / VPN / MPLS / AWS Direct Connect / Azure ExpressRoute
- Is the connection encrypted? (IPSec / SSL VPN / plain)
- Who manages the connection? (InfraSec / vendor / Company BU)

Flag immediately if: two DCs or a DC and a cloud are connected via "the Internet" without VPN/encryption.

### Phase 5 — Component-to-component communication

For each integration point (arrow in the architecture):

| Field | Required answer |
|-------|----------------|
| Initiator (arrow tail) | Exact component name |
| Provider (arrow head) | Exact component name |
| Protocol | HTTPS / Kafka / SFTP / JDBC / ODBC / gRPC / RFC / TCP (with port) |
| Port | Optional but required for TCP/non-standard |
| Auth mechanism | See list below — must be specific |
| Cross-zone? | Yes/No — if yes, goes through integration platform |

**Authentication mechanisms — must pick one:**
- OAuth 2.0 Client Credentials (for HTTPS service-to-service)
- Basic Auth (HTTPS) — flag as weak, ask if acceptable
- Client Certificate / mTLS
- Azure Shared Access Signature
- SASL/SCRAM (Kafka)
- User/Password (JDBC/ODBC)
- Kerberos
- API Key — flag as weak, ask if there's a rotation strategy
- Other — get full detail

**Rule**: Every pair of communicating components must have an auth mechanism.
If the answer is "no auth needed because it's internal", flag this as a security gap.

### Phase 6 — Credential & key protection

Where are secrets stored?

- Azure: Azure Key Vault? (soft-delete + purge-protection enabled?)
- AWS: AWS Secrets Manager? AWS KMS?
- Private DC: Kubernetes Secrets (encrypted at rest)? Internal K8s Secret? Linux encrypted files? Other?
- Any hardcoded credentials? → Immediately flag as CRITICAL VIOLATION

### Phase 7 — User authentication & authorization

For each user-facing entry point:

| Field | Required answer |
|-------|----------------|
| User role(s) | e.g. "Company internal employee / BU manager / External partner" |
| Auth server | ADFS (internal) / EnterpriseID (external) / Entra ID |
| Auth protocol | SAML 2.0 / CAS / OAuth2 Authorization Code / OIDC |
| Authorization mechanism | RBAC / ABAC / PBAC / DAC |
| Authorization platform | AuthZ Platform / Azure AD groups / App-level RBAC / other |

### Phase 8 — Data encryption

- Is data encrypted at rest in databases? (AES-256? TDE?)
- Is data encrypted in transit? (TLS 1.3? TLS 1.2?)
- Are there cross-border data flows involving PII or financial data?
  If yes: what compliance basis? (GDPR / 中国数据安全法 / PDPA / CCPA)

---

## Gap flags

During the interview, maintain a running **GAP LIST**. After each phase, explicitly state:

```
⚠ GAPS IN THIS PHASE:
- [Component X]: runtime environment not specified
- [Connection Y→Z]: authentication mechanism missing
- [Data in DB A]: encryption at rest not confirmed
```

Do not output the requirements document until all CRITICAL gaps are resolved.

**CRITICAL gaps** (block document output):
- No physical DC/region specified for any component
- Missing auth on any external-facing connection
- Hardcoded credentials mentioned
- Data residency constraint violated (PRC data outside PRC)

**NON-CRITICAL gaps** (document with TBD, do not block):
- Framework/library version not yet decided
- Port numbers for internal services
- Exact subnet names within a known VPC

---

## Output format

When all critical gaps are resolved, produce two files:

### File 1: `REQ-{ProjectName}.md` (human-readable)

```markdown
# Requirements Document — {Project Name}
**Version**: 1.0 Draft  |  **Date**: {date}  |  **Author**: {author}
**Scope**: Standalone / E2E (existing apps treated as black boxes)

## 1. Project Overview
{business purpose, 2-3 sentences}

## 2. Applications in Scope
| App | Type | New/Existing | Owner | Scope |
|-----|------|-------------|-------|-------|

## 3. Physical Deployment
| App/Component | Country/Region | DC / Cloud Region | Zone/Subnet | Owner |
|---------------|---------------|-------------------|-------------|-------|

## 4. Network Topology
| Connection | Type | Encryption | Notes |
|------------|------|------------|-------|

## 5. Technical Components (new/modified only)
| Component | Type | Language | Framework | Runtime | Sensitivity |
|-----------|------|----------|-----------|---------|-------------|

## 6. Integration Points
| # | From | To | Protocol | Port | Auth Method | Notes |
|---|------|----|----------|------|-------------|-------|

## 7. User Authentication
| Entry Point | User Roles | Auth Server | Protocol | Authorization |
|-------------|-----------|-------------|----------|---------------|

## 8. Credential & Key Protection
| Environment | Solution | Notes |
|-------------|----------|-------|

## 9. Data Encryption
| Component | At Rest | In Transit | Cross-Border | Compliance |
|-----------|---------|------------|--------------|------------|

## 10. Open Items / TBDs
| ID | Item | Owner | Target Date |
|----|------|-------|-------------|

## 11. Architecture Constraints
{Any non-negotiable technical or compliance constraints}
```

### File 2: `req-{ProjectName}.yaml` (machine-readable, arch-design input)

```yaml
requirements:
  project:
    name: ""
    id: ""
    scope: "standalone | e2e"
    department: ""
    author: ""
    date: ""

  applications:
    - id: ""
      name: ""
      type: "new | existing | modified"
      owner: "org_it | biz_owned | third_party"
      vendor: ""          # if third_party

  deployment:
    - app_id: ""
      country: ""
      dc_or_region: ""    # e.g. "Hohhot DC [CN]" or "AWS US East N.Virginia [US]"
      platform: "private_dc | aws | azure | saas"
      zone_subnet: ""     # DMZ / App Zone / Private Subnet / etc.
      infrastructure_owner: "InfraSec | BizIT | ThirdParty"

  components:            # new or modified only
    - id: ""
      app_id: ""
      name: ""
      type: "FE | BE | API | BFF | DB | MQ | IP | LB | SEC"
      language: ""
      framework: ""
      runtime: ""
      sensitivity: "Company Restricted | Company Confidential | Company Internal"

  network_connections:
    - from_location: ""
      to_location: ""
      type: "Internet | VPN | MPLS | DirectConnect | ExpressRoute"
      encrypted: true
      encryption_method: ""

  interactions:
    - id: ""
      from_component: ""
      to_component: ""
      protocol: ""
      port: ""
      auth_method: ""
      notes: ""

  user_auth:
    - entry_point: ""
      user_roles: []
      auth_server: "ADFS | EnterpriseID | EntraID"
      auth_protocol: "SAML | CAS | OAuth2_AuthCode | OIDC"
      authorization: "RBAC | ABAC | PBAC | DAC"
      auth_platform: ""

  credentials:
    - environment: "azure | aws | private_dc"
      solution: ""
      notes: ""

  data_encryption:
    - component: ""
      at_rest: true
      at_rest_method: ""
      in_transit: true
      in_transit_protocol: "TLS 1.3 | TLS 1.2"
      cross_border: false
      cross_border_compliance: ""

  open_items:
    - id: ""
      description: ""
      owner: ""
      blocking: true
```

---

## How arch-design uses this output

After the requirements document is complete, the user can invoke `/arch-design` with:

```
@arch-design  (or /arch-design)
Input: REQ-MyProject.md + req-MyProject.yaml
```

`arch-design` will read the requirements YAML, select the appropriate template(s) from
`tools/arch-diagram-gen/templates/CATALOG.yaml`, and produce the Architecture YAML.
The requirements doc replaces the "ask forcing questions" phase in arch-design —
if a req.yaml is provided, arch-design skips Phase 2 and goes directly to template selection.

Attribution

axisroboaxisrobo
View sourceMore from axisrobo →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3331 votes

catchup

Recovers prior coding-agent session context by running `catchup <agent> --since-compact`, which extracts a clean summary of a previous Codex, Claude Code, Antigravity, OpenCode, or Pi Agent session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", or asks to recover/summarize a previous session before continuing. Do NOT use for the current conversation, git history, or any non-agent log.

611 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →