arckit-principles
$
npx mdskill add tractorjuice/arc-kit/arckit-principlesGenerate enterprise architecture principles from templates and policies.
- Creates governance rules for technology decisions across the organization.
- Reads global policies, project artifacts, and external reference documents.
- Applies TOGAF standards and departmental constraints to draft principles.
- Outputs finalized architecture principles in a structured markdown format.
SKILL.md
.github/skills/arckit-principlesView on GitHub ↗
---
name: arckit-principles
description: "Create or update enterprise architecture principles"
---
You are helping an enterprise architect define architecture principles that will govern all technology decisions in the organisation.
## User Input
```text
$ARGUMENTS
```
## Instructions
1. **Read the template** (with user override support):
- **First**, check if `.arckit/templates/architecture-principles-template.md` exists in the project root
- **If found**: Read the user's customized template (user override takes precedence)
- **If not found**: Read `.arckit/templates/architecture-principles-template.md` (default)
> **Tip**: Users can customize templates with `$arckit-customize architecture-principles`
2. **Read external documents and policies**:
> **Note**: Before generating, scan `projects/` for existing project directories. For each project, list all `ARC-*.md` artifacts, check `external/` for reference documents, and check `000-global/` for cross-project policies. If no external docs exist but they would improve output, ask the user.
- Read any **global policies** listed in the project context (`000-global/policies/`) — extract existing architecture principles, TOGAF standards, departmental policies, technology standards
- If no external governance documents found, ask: "Do you have any existing architecture principles, governance frameworks, or departmental technology standards? I can read PDFs and Word docs directly. Place them in `projects/000-global/policies/` and re-run, or skip to create principles from scratch."
- **Citation traceability**: When referencing content from external documents, follow the citation instructions in `.arckit/references/citation-instructions.md`. Place inline citation markers (e.g., `[PP-C1]`) next to findings informed by source documents and populate the "External References" section in the template.
3. **Understand the request**: The user may be:
- Creating principles from scratch for a new organization
- Adding specific principles (e.g., "add API-first principle")
- Updating existing principles
- Tailoring principles for a specific industry (e.g., financial services, healthcare, retail)
4. **Generate comprehensive principles**: Based on the user's input, create detailed architecture principles following the template structure:
- Strategic Principles (Scalability, Resilience, Interoperability, Security by Design, etc.)
- Data Principles (Single Source of Truth, Data Quality, Privacy by Design)
- Integration Principles (Loose Coupling, Standard Interfaces, Asynchronous Communication)
- Quality Attributes (Performance, Availability, Maintainability, Observability)
- Development Practices (Automation, Testing, Code Review, Continuous Improvement)
- Exception Process (how to request deviations)
**IMPORTANT**: Principles MUST be **technology-agnostic**:
- Focus on CHARACTERISTICS, not specific products (e.g., "horizontally scalable" not "use Kubernetes")
- Focus on QUALITIES, not specific technologies (e.g., "encrypted in transit" not "use TLS 1.3")
- Focus on PATTERNS, not specific implementations (e.g., "event-driven integration" not "use Kafka")
- Focus on OUTCOMES, not specific tools (e.g., "infrastructure as code" not "use Terraform")
**What TO include**: Architectural qualities, patterns, practices, and decision criteria
**What NOT to include**: Specific vendors, products, cloud providers, programming languages, frameworks
5. **Make it actionable**: Each principle MUST include:
- Clear principle statement with MUST/SHOULD/MAY (technology-agnostic)
- Rationale explaining WHY this principle matters
- Implications (how it affects design decisions)
- Validation gates (checklist items to verify compliance)
- Example scenarios (good vs bad, without naming specific products)
- Common violations to avoid
6. **Industry-specific customization**: If the user mentions an industry:
- **Financial Services**: Add principles for transaction integrity, audit trails, regulatory compliance (SOX, PCI-DSS)
- **Healthcare**: Add HIPAA compliance, PHI data handling, consent management
- **Retail**: Add principles for payment processing, inventory systems, customer data
- **Government**: Add accessibility (Section 508), public records, security clearances
7. **Detect version**: Before generating the document, check if a previous version exists:
- Look for existing `ARC-000-PRIN-v*.md` files in `projects/000-global/`
- **If no existing file**: Use VERSION="1.0"
- **If existing file found**:
- Read the existing document to understand its scope
- Compare against current inputs
- **Minor increment** (e.g., 1.0 → 1.1): Scope unchanged — refreshed content, updated details, corrections
- **Major increment** (e.g., 1.0 → 2.0): Scope materially changed — new principle categories, removed categories, fundamentally different guidance
- For v1.1+/v2.0+: Add a Revision History entry describing what changed from the previous version
8. **Write the output**:
Before writing the file, read `.arckit/references/quality-checklist.md` and verify all **Common Checks** plus the **PRIN** per-type checks pass. Fix any failures before proceeding.
- **Document ID**: `ARC-000-PRIN-v{VERSION}` (e.g., `ARC-000-PRIN-v1.0`) — 000 indicates global/cross-project document
- **Filename**: `ARC-000-PRIN-v{VERSION}.md`
- Write to: `projects/000-global/ARC-000-PRIN-v${VERSION}.md`
- Use the exact template structure
- Make it ready for immediate use by development teams
> **WARNING**: Do NOT use legacy filename `architecture-principles.md`. Always use the document ID format.
> **NOTE**: The `projects/000-global/` directory is for cross-project artifacts like architecture principles.
**IMPORTANT - Auto-Populate Document Information Fields**:
Before completing the document, populate document information fields:
### Auto-populated fields
- `[PROJECT_ID]` → Extract from project path (e.g., "001")
- `[VERSION]` → Determined version from step 6
- `[DATE]` / `[YYYY-MM-DD]` → Current date in YYYY-MM-DD format
- `[DOCUMENT_TYPE_NAME]` → Document purpose
- `ARC-[PROJECT_ID]-PRIN-v[VERSION]` → Generated document ID
- `[STATUS]` → "DRAFT" for new documents
- `[CLASSIFICATION]` → Default to "OFFICIAL" (UK Gov) or "PUBLIC"
### User-provided fields
- `[PROJECT_NAME]` → Full project name
- `[OWNER_NAME_AND_ROLE]` → Document owner
### Revision History
```markdown
| 1.0 | {DATE} | ArcKit AI | Initial creation from `$arckit-principles` command |
```
### Generation Metadata Footer
```markdown
**Generated by**: ArcKit `$arckit-principles` command
**Generated on**: {DATE}
**ArcKit Version**: {ARCKIT_VERSION}
**Project**: {PROJECT_NAME} (Project {PROJECT_ID})
**AI Model**: [Actual model name]
```
9. **Summarize what you created**: After writing, provide a brief summary:
- How many principles were defined
- Key areas covered
- Any industry-specific additions
- Suggested next steps: "Now run `$arckit-stakeholders` to analyze stakeholder drivers and goals for your project"
## Example Usage
User: `$arckit-principles Create principles for a financial services company focusing on cloud migration`
You should:
- Read the template
- Generate comprehensive principles
- Add financial services specific requirements (SOX, PCI-DSS, transaction integrity, audit trails)
- Include cloud migration principles (cloud-first, lift-and-shift vs re-architecture)
- Write to `projects/000-global/ARC-000-PRIN-v1.0.md`
- Confirm completion with summary
## Important Notes
- **Technology Agnostic**: Principles describe WHAT qualities the architecture must have, not HOW to implement them with specific products
- **Decision Criteria, Not Decisions**: Principles guide technology selection during `$arckit-research` phase, they don't prescribe specific technologies
- **Timeless**: Good principles survive technology changes - "scalable" is timeless, "use Docker" is not
- These principles become the "constitution" for all architecture decisions
- They will be referenced in requirements documents, design reviews, and vendor evaluations
- Make them specific enough to be enforceable but flexible enough to allow innovation
- Include validation gates so reviews can be objective
- **Markdown escaping**: When writing less-than or greater-than comparisons, always include a space after `<` or `>` (e.g., `< 3 seconds`, `> 99.9% uptime`) to prevent markdown renderers from interpreting them as HTML tags or emoji
## Examples of Good vs Bad Principles
**❌ BAD** (Technology-Specific):
- "All applications MUST use Kubernetes for container orchestration"
- "Authentication MUST use Auth0"
- "Databases MUST be PostgreSQL or MySQL"
- "APIs MUST use REST with JSON payloads"
**✅ GOOD** (Technology-Agnostic):
- "All applications MUST support horizontal scaling to meet demand"
- "Authentication MUST use industry-standard protocols with multi-factor authentication"
- "Databases MUST support ACID transactions for financial data"
- "APIs MUST use standard protocols with versioning and backward compatibility"
More from tractorjuice/arc-kit
- architecture-workflowThis skill should be used when the user asks how to start an architecture project, which ArcKit commands to run and in what order, what workflow to follow, getting started, new project setup, guide me through, or what comes next.
- arckit-adrDocument architectural decisions with options analysis and traceability
- arckit-ai-playbookAssess UK Government AI Playbook compliance for responsible AI deployment
- arckit-analyzePerform comprehensive governance quality analysis across architecture artifacts (requirements, principles, designs, assessments)
- arckit-at-bvergg[COMMUNITY] Generate Austrian public procurement documentation aligned with Bundesvergabegesetz 2018 — Oberschwellen/Unterschwellen determination, ANKÖ publication, BVergGVS secondary rules, and BVwG review pathway
- arckit-at-dsgvo[COMMUNITY] Assess Austrian DSG / DSGVO obligations — Datenschutzbehörde patterns, §§12–13 DSG special provisions, image processing (§12 DSG), and Austrian enforcement practice
- arckit-at-nisg[COMMUNITY] Assess Austrian NISG obligations (BGBl. I Nr. 94/2025) — AT transposition of NIS2, BKA (GovCERT) / BMI (SPOC) reporting, KSÖ coordination, and Austrian sectoral rules for Essential/Important entities
- arckit-atrsGenerate Algorithmic Transparency Recording Standard (ATRS) record for AI/algorithmic tools
- arckit-aws-researchResearch AWS services and architecture patterns using AWS Knowledge MCP for authoritative guidance
- arckit-azure-researchResearch Azure services and architecture patterns using Microsoft Learn MCP for authoritative guidance