arckit-principles
Create or update enterprise architecture principles
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
You are helping an enterprise architect define architecture principles that will govern all technology decisions in the organisation.
User Input
$ARGUMENTS
Instructions
-
Read the template (with user override support):
-
First, check if
.arckit/templates/architecture-principles-template.mdexists 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 -
First, check if
-
Read external documents and policies:
Note: Before generating, scan
projects/for existing project directories. For each project, list allARC-*.mdartifacts, checkexternal/for reference documents, and check000-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."
- Read any global policies listed in the project context (
-
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)
-
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
-
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
-
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
-
Detect version: Before generating the document, check if a previous version exists:
- Look for existing
ARC-000-PRIN-v*.mdfiles inprojects/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
- Look for existing
-
Write the output:
Before writing the file, read
.arckit/references/quality-checklist.mdand 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: Theprojects/000-global/directory is for cross-project artifacts like architecture principles. -
Document ID:
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
| 1.0 | {DATE} | ArcKit AI | Initial creation from `$arckit-principles` command |
Generation Metadata Footer
**Generated by**: ArcKit `$arckit-principles` command
**Generated on**: {DATE}
**ArcKit Version**: {ARCKIT_VERSION}
**Project**: {PROJECT_NAME} (Project {PROJECT_ID})
**AI Model**: [Actual model name]
-
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-stakeholdersto 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-researchphase, 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"
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-03-11
- Mise à jour de l’index
- 2026-03-11
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!