원클릭으로
non-functional-requirements
Capture scale, availability, security, and integrity requirements for infrastructure planning
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Capture scale, availability, security, and integrity requirements for infrastructure planning
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generate Azure infrastructure as Bicep code from planning data
Generate Azure infrastructure as Terraform code from planning data
Generate a Mermaid architecture diagram derived from application components and infrastructure context data
Configure an individual application component by mapping it to an Azure service with SKU, region, and service-specific settings
Document source control, CI/CD platform, environments, deployment process, and quality gates for the application
Read all planning data, propose relevant ADR topics, and generate Architecture Decision Records following the project template
| name | non-functional-requirements |
| description | Capture scale, availability, security, and integrity requirements for infrastructure planning |
This skill captures the non-functional requirements of the application for the Az Infra Harness. It generates infra/application-definition/non-functional-requirements.md which is used to inform infrastructure sizing, availability targets, and security configuration.
The generated file will be displayed in the UI when the user runs npx @zureltd/az-infra-harness and navigates to the Application Definition section.
Run this skill when:
/application-overview to complete the application definition/non-functional-requirementsYou MUST interact with the user and wait for their responses before writing the output file. Never generate the file silently based on what you read from the filesystem or codebase alone.
There are two modes depending on whether a file already exists:
Check whether infra/application-definition/non-functional-requirements.md already exists and has content.
If the file exists and has content → follow the "Update Mode" workflow (Step 2a).
If the file does not exist or is empty → follow the "Fresh Mode" workflow (Step 2b).
Read the existing file and present its current contents to the user, section by section. Ask what they want to change.
I found your existing non-functional requirements. Here's what's currently captured:
**Scale**
- Expected Users: [current value]
- Concurrent Users: [current value]
- Growth: [current value]
- Data Volume: [current value]
**Availability**
- Target Uptime: [current value]
- Maintenance Windows: [current value]
- Critical Period: [current value]
**Security & Confidentiality**
- Data Sensitivity: [current value]
- Compliance: [current value]
- Authentication: [current value]
- Data at Rest: [current value]
- Data in Transit: [current value]
**Integrity**
- Backup Frequency: [current value]
- RTO: [current value]
- RPO: [current value]
- Data Consistency: [current value]
**Usage Patterns**
- Traffic Type: [current value]
- Peak Times: [current value]
- Seasonal Variance: [current value]
- Geographic Distribution: [current value]
What would you like to update? You can tell me which section(s) to change, or say "all" to go through everything again from scratch.
Wait for the user's response. Then:
Ask each section and STOP to wait for the user's answer before continuing to the next section.
This skill MUST comply with the shared Interaction & Validation Standard:
.opencode/skills/_shared/interaction-validation-standard.md
All five sections (Scale, Availability, Security & Confidentiality, Integrity, Usage Patterns) must be fully answered before proceeding to Step 3.
Before asking questions, optionally scan the codebase for hints:
Files to scan (for context hints only):
README.md — may mention scale, compliance, or SLA requirements.env.example, docker-compose.yml, kubernetes/, helm/) — may reveal scaling setup.github/, azure-pipelines.yml) — may reveal environment tiersdocs/ or documentation/ — may contain architecture or SLA documentationIf you find relevant hints, surface them naturally as part of the question (e.g., "I noticed a GDPR mention in your README — what compliance requirements apply?"). Do not present all hints upfront as a block.
Ask questions one section at a time. Present all questions for a section together, then wait for the user's response before moving to the next.
Ask:
Let's start with scale. I need a few numbers to understand the size of your application:
1. How many registered (total) users do you expect?
2. How many daily active users on a typical day?
3. How many concurrent users at peak?
4. What year-over-year growth rate do you expect? (e.g., 30%)
5. What is the current data volume, and where do you expect it in 2 years?
Guidelines:
Validation:
Ask:
Now, availability. Help me understand your uptime needs:
1. What is your target uptime? (e.g., 99.5%, 99.9%, "four nines")
2. When are acceptable maintenance windows? (e.g., "weekends 2-6 AM")
3. What are your most critical business hours? (e.g., "Monday-Friday 8 AM - 6 PM EST")
Guidelines:
Validation:
Ask:
Let's cover security and confidentiality:
1. What types of sensitive data does your application handle? (e.g., PII, payment data, health records)
2. Are there any compliance requirements? (e.g., GDPR, HIPAA, CCPA, SOC 2, PCI-DSS — or "none")
3. What are your authentication requirements? (e.g., MFA, SSO, username/password only)
4. Is encryption required for data at rest?
5. What TLS version or transport security is required?
Guidelines:
Validation:
Ask:
Now let's talk about data integrity and recovery:
1. How frequently should backups run? (e.g., daily, hourly)
2. What is your Recovery Time Objective (RTO)? — the maximum acceptable downtime after a failure
3. What is your Recovery Point Objective (RPO)? — the maximum acceptable data loss (e.g., "up to 24 hours of data")
4. What data consistency model is acceptable? (e.g., strong consistency, eventually consistent)
Guidelines:
Validation:
Ask:
Finally, some questions about usage patterns:
1. What type of traffic does your application receive? (e.g., steady baseline, bursty, batch jobs)
2. When are traffic peaks? (e.g., Monday mornings, after marketing emails)
3. Are there seasonal variations? (e.g., holiday season spikes)
4. Where are your users geographically located? (e.g., 80% North America, global)
Guidelines:
Validation:
Only proceed here after the user has interacted and confirmed what they want written. In update mode this means they've reviewed the current values and confirmed changes. In fresh mode this means all five sections have been answered.
Once all information is gathered and validated, create the markdown file with this exact structure:
# Non-Functional Requirements
## Scale
- **Expected Users**: [total registered users, daily active users]
- **Concurrent Users**: [peak concurrent users]
- **Growth**: [year-over-year growth expectation]
- **Data Volume**: [current size and projected size]
## Availability
- **Target Uptime**: [percentage or SLA, with equivalent downtime if useful]
- **Maintenance Windows**: [when maintenance is acceptable]
- **Critical Period**: [when uptime is most important]
## Security & Confidentiality
- **Data Sensitivity**: [types of sensitive data handled]
- **Compliance**: [regulations: GDPR, HIPAA, etc. — or "None"]
- **Authentication**: [requirements: MFA, SSO, etc.]
- **Data at Rest**: [encryption requirements]
- **Data in Transit**: [TLS version, etc.]
## Integrity
- **Backup Frequency**: [schedule]
- **Recovery Time Objective (RTO)**: [maximum downtime]
- **Recovery Point Objective (RPO)**: [maximum data loss]
- **Data Consistency**: [requirements: strong, eventual, etc.]
## Usage Patterns
- **Traffic Type**: [steady, bursty, predictable, etc.]
- **Peak Times**: [when traffic is highest]
- **Seasonal Variance**: [holiday patterns, etc. — or "None"]
- **Geographic Distribution**: [where users are located]
Important formatting rules:
#) for the file title: exactly # Non-Functional Requirements##) for each section: Scale, Availability, Security & Confidentiality, Integrity, Usage Patterns-) with bold labels (**Label**:) for each item[total registered users]) in the final outputBefore saving, verify the generated content meets all requirements:
Structure validation:
# Non-Functional RequirementsContent validation:
[total registered users])If validation fails:
Target location: infra/application-definition/non-functional-requirements.md
Pre-save checks:
infra/application-definition/Save process:
Error handling:
After successful file creation, inform the user:
✅ Created non-functional requirements successfully!
📄 File location: infra/application-definition/non-functional-requirements.md
🌐 To view in the UI:
1. Ensure the Az Infra Harness is running: `npx @zureltd/az-infra-harness`
2. Refresh your browser
3. Navigate to the Application Definition section
4. The non-functional requirements box should now show a blue border with a checkmark
You can now run /application-components to continue with the next step.
Please check permissions and try again."
Action: Offer sensible defaults and explain the concepts
Message: "If you're unsure, here are common defaults:
Would you like to use these as starting values?"
Agent: "I'll help you capture the non-functional requirements. Let me start with scale:
User: "About 50,000 registered, 5,000 daily, 500 concurrent, 30% growth, 2GB now growing to 10GB"
Agent: "Got it. Now availability:
[Continues through Security & Confidentiality, Integrity, and Usage Patterns sections]
Agent: "Thank you! Let me generate the requirements file..."
Agent: "I found your existing non-functional requirements. Here's what's currently captured:
Scale
What would you like to update? You can tell me which section(s) to change, or say 'all' to go through everything again."
User: "The scale numbers have changed — we're now expecting 100,000 users and 10,000 daily active."
Agent: "Updated. Anything else you'd like to change, or shall I save the updated file?"
User: "That's it."
Agent: "✅ Updated non-functional requirements successfully!"
infra/application-definition/non-functional-requirements.md for a complete exampleinfra/application-definition/README.md for format specificationDATA-STRUCTURE.md for overall structure/application-components nextThe skill is successful when:
infra/application-definition/non-functional-requirements.md