算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
enterprise-architecture-governance【设计与创意】Use this skill when establishing or operating architecture governance including review boards, decision rights, and architecture principles. This skill enforces: ARB charter, architecture reviews, decision rights framework, principle compliance. Do NOT use for: enterprise architecture method, solution design, technology implementation.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Guides establishment and operation of architecture governance including Architecture Review Board operations, decision rights frameworks, architecture review processes, and architecture principles management.
A five-pillar framework for architecture governance:
Pillar 1 - Charter: Define the Architecture Review Board purpose, scope, authority, and membership. Establish decision rights and escalation paths. Document in a formal charter approved by executive leadership.
Pillar 2 - Principles: Establish architecture principles that guide all technology decisions. Principles are enduring but not eternal -- they evolve as the business and technology landscape change. Each principle includes name, statement, rationale, and implications.
Pillar 3 - Process: Design multi-tier architecture review process. Define submission requirements, review criteria, decision categories, and follow-up tracking. Match review depth to change impact.
Pillar 4 - Oversight: Monitor compliance with architecture standards and principles. Track architecture decisions and exceptions. Report governance metrics to leadership. Identify emerging risks and trends.
Pillar 5 - Evolution: Continuously improve governance processes. Adapt to organizational changes. Incorporate lessons from past decisions. Update principles and standards as technology evolves.
Decision rights define who can make which architecture decisions:
Domain Architects: Authority for decisions within their domain (e.g., payment domain, inventory domain). Decisions must conform to enterprise principles and standards. Can approve standard changes without ARB review.
Enterprise Architects: Authority for cross-domain decisions, technology standards, and principle interpretations. Chair the ARB. Can approve minor exceptions.
Architecture Review Board: Authority for major architecture decisions, exception approvals, and principle changes. Operates by consensus or voting. Escalation path to CTO/CIO for unresolved conflicts.
CTO/CIO: Final authority on architecture decisions. Typically only involved in escalated disagreements, strategic technology shifts, or decisions with significant investment.
Decision rights must be documented in a RACI matrix covering: technology selection, architecture principle changes, exception approvals, standard definition, reference architecture creation, and technology retirement.
Tier 1 - Lightweight (Team-level): For minor changes within existing standards. No ARB submission needed. Documented decision with team lead approval. 2 business day turnaround.
Tier 2 - Standard (Domain-level): For changes affecting a single domain but outside defined standards. Domain architect review and recommendation. ARB notification after decision. 1 week turnaround.
Tier 3 - Major (ARB-level): For cross-domain changes, new technology introduction, significant architecture changes, or principle exceptions. Full ARB review with presentation. 2-4 week turnaround.
Tier 4 - Strategic (Executive-level): For enterprise-wide architecture changes, technology platform shifts, or high-investment decisions. ARB review + CTO approval. 4-8 week turnaround with phased approach.
| Model | Decision Authority | Best For |
|---|---|---|
| Centralized | Single ARB for all decisions | <500 employees, single business unit |
| Federated | Domain ARBs + Enterprise ARB for cross-domain | 500-5000 employees, multiple business units |
| Hybrid | Domain ARBs with delegated authority, Enterprise ARB for exceptions | >5000 employees, regulated industries |
| Severity | Impact | Approval Authority | Max Duration |
|---|---|---|---|
| Minor | Single team, no cross-domain impact | Domain Architect | 6 months |
| Major | Cross-domain, standard deviation | ARB | 12 months |
| Critical | Principle violation, security impact | CTO/CIO | 6 months, non-renewable |
Exact user phrases: architecture board, ARB, architecture review, architecture governance, decision rights, architecture principles, architecture exception, architecture compliance, review board, architecture standards, architecture oversight.
Before activating, verify:
Governance charter, review decision, or principle assessment document.
## Architecture Governance Artifact
### Context
{scope, stakeholders, governance maturity}
### Decision / Assessment
{review outcome, principle compliance, exception status}
### Rationale
{basis for decision, references}
### Actions / Conditions
{required actions, owners, deadlines}
No preamble. No postamble. No explanations. No filler/hedging/transitions.
8000 tokens
Define ARB purpose, scope, and decision authority. Appoint members from architecture, business, security, and operations domains. Establish meeting cadence and quorum requirements. Document charter for executive approval.
ARB charter components:
ARB membership should include: Chief Architect (chair), domain architects (rotating), security architect, operations representative, business stakeholder, and optionally external advisor.
Define review tiers (lightweight, standard, full) based on change impact. Create submission templates and review checklists. Establish decision categories (approve, approve with conditions, return, reject). Design follow-up tracking for conditional approvals.
Review submission template should require:
Decision documentation: every review produces a decision record with date, attendees, decision, rationale, conditions (if any), and follow-up dates. Store in architecture repository.
Map decision categories to decision authorities. Create RACI matrix for architecture decisions. Define delegation rules for routine decisions. Document escalation path for conflicts and appeals. Establish override process for urgent decisions.
Decision categories:
RACI example:
| Decision Type | Domain Architect | Enterprise Architect | ARB | CTO |
|---|---|---|---|---|
| Tech selection (within standards) | A/R | C | I | I |
| Tech selection (new standard) | C | R | A | I |
| Principle exception | C | C | R | A |
| Technology retirement | R | A | C | I |
Develop principle categories (business, data, application, technology, security). Write principles using standard template (name, statement, rationale, implications). Validate principles with stakeholders. Publish principle catalog with governance process.
Principle template:
Principle categories:
Conduct architecture reviews per defined tiers. Manage exception requests with time-limited approvals. Track compliance of implemented solutions. Report governance metrics to leadership. Continuously improve governance processes.
Exception management: Exceptions are time-limited deviations from architecture standards or principles. Each exception has:
Track exceptions in a register. Send reminder 60 days before expiration. Escalate expired exceptions.
Governance metrics:
| Level | Characteristics | Practices |
|---|---|---|
| 1 - Initial | Ad-hoc decisions, no formal ARB | No governance process |
| 2 - Reactive | ARB exists but reviews only major issues | Basic review checklist |
| 3 - Proactive | Tiered reviews, principles defined, exceptions tracked | RACI matrix, metrics |
| 4 - Measured | Quantitative governance, compliance SLAs, automated gates | Fitness functions in CI/CD |
| 5 - Optimizing | Predictive governance, continuous improvement, automated policy enforcement | AI-assisted review, self-healing |
Architecture fitness functions in CI/CD:
# Example: GitHub Action for architecture compliance
name: architecture-compliance
on: pull_request
jobs:
check-architecture:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check dependency direction
run: ./scripts/check-dependency-rules.sh
- name: Verify API contract compatibility
run: ./scripts/check-api-compatibility.sh
- name: Validate cloud resource naming
run: ./scripts/check-naming-convention.sh
- name: Check principle compliance
run: ./scripts/check-principles.sh
Pitfall 1: ARB as a rubber stamp. If every submission is approved without discussion, the ARB provides no value. Encourage debate. Challenge assumptions. Require alternatives to be considered.
Pitfall 2: Over-governing small decisions. If every technology choice requires ARB approval, teams become dependent and slow. Delegate routine decisions to domain architects. Reserve ARB for significant changes.
Pitfall 3: Principles without teeth. Principles that are aspirational but not enforced create cynicism. Each principle should have clear implications and be referenced in review criteria.
Pitfall 4: No follow-up on conditionally approved decisions. Approving with conditions but never verifying creates architecture drift. Track conditions to closure. Verify implementation.
Pitfall 5: Governance as a gate rather than a service. If ARB is seen as a blocking function, teams will try to bypass it. Position governance as enabling better decisions through expert review.
Pitfall 6: Stale principles and standards. Technology evolves. Principles written 3 years ago may no longer apply. Annual principle review with update process.
Pitfall 7: No representation from all domains. An ARB composed entirely of one domain's architects makes biased decisions. Ensure balanced representation.
Pitfall 8: Missing the business perspective. Architecture decisions made without business context may optimize for technology at the expense of business outcomes. Include business stakeholders in significant reviews.
Practice 1: Make the ARB a decision-making body, not a review-only body. The ARB should own specific decisions, not just review and recommend. Clear decision authority speeds up governance.
Practice 2: Use architecture decision records (ADRs). Every architecture decision, whether ARB-reviewed or team-level, should be documented in an ADR. Store in version control alongside code.
Practice 3: Create a self-service reference library. Document approved patterns, reference architectures, and technology standards. Teams can self-serve for standard decisions without ARB involvement.
Practice 4: Implement architecture fitness functions. Automated tests that verify architecture characteristics (coupling, cohesion, compliance with standards). Run in CI/CD pipeline.
Practice 5: Hold ARB office hours. Regular open sessions where teams can ask questions, get early feedback, and navigate governance requirements. Reduces surprises at formal review.
Practice 6: Publish governance metrics transparently. Share ARB decisions, exception trends, and compliance rates with the organization. Transparency builds trust and encourages compliance.
| Standard | Governance Requirement | Mapping |
|---|---|---|
| COBIT 5 | EDM03 - Ensure Risk Optimization | ARB risk assessment in reviews |
| COBIT 5 | APO07 - Manage Human Resources | RACI matrix, decision rights |
| ISO 38500 | Evaluate, Direct, Monitor | Governance framework oversight |
| TOGAF | Architecture Board, Compliance | ADM Phase G - Implementation Governance |
| SAFe | Enterprise Architect, Guardrails | ARB as architectural runway governance |
# ADR-{NNN}: {Title}
## Status
{Proposed / Accepted / Deprecated / Superseded}
## Context
{Problem description, business drivers, constraints}
## Decision
{What was decided}
## Alternatives Considered
{Alternative 1}: {why not selected}
{Alternative 2}: {why not selected}
## Consequences
{Positive and negative implications}
## Compliance
{How compliance will be verified}
## References
{Related ADRs, standards, documents}
## Architecture Review Submission
### Request Information
- Submitter: {name}, {team}
- Date: {date}
- Review Tier: {Lightweight / Standard / Major / Strategic}
### Change Description
{What is being proposed? Why?}
### Business Context
{Business driver, expected outcomes, timeline}
### Solution Overview
{Architecture diagram, key components, integration points}
### Alternatives Considered
{At least 2 alternatives with rationale for rejection}
### Principle Compliance
{For each applicable principle: Compliant / Exception Requested}
### Impact Analysis
- Security: {impact}
- Performance: {impact}
- Cost: {impact}
- Operations: {impact}
- Other Domains: {impact}
### Risks and Mitigations
{Risk 1} | {Mitigation 1}
{Risk 2} | {Mitigation 2}
### Attachments
{Diagrams, references, supporting documents}
| ID | Exception Description | Principle/Standard | Severity | Owner | Approval Date | Expiry | Status | Remediation Plan |
|----|----------------------|-------------------|----------|-------|--------------|--------|--------|-----------------|
| EX-001 | Use of MongoDB instead of RDS | Prefer managed SQL databases | Minor | Team A | 2025-01-15 | 2025-07-15 | Active | Migrate to Aurora by expiry |
A large enterprise ARB was viewed as a bottleneck, with 6-week average review times and 80% of submissions returned for insufficient information. The transformation: introduced tiered review (lightweight/standard/major), published submission templates and reference architectures, held weekly office hours. Average review time dropped to 5 days. Team satisfaction with governance improved from 2.1 to 4.3 out of 5.
A company accumulated 47 open architecture exceptions over 3 years, most without expiration dates. A cleanup initiative found that 30 exceptions were no longer relevant (technology had evolved). 12 were extended with new remediation plans. 5 required executive escalation. The exception register was reset with mandatory expiration dates, quarterly review, and automated reminders.
A technology company used its architecture principles to make a difficult build-vs-buy decision for a critical platform component. The principle "Prefer managed services over custom infrastructure" guided the decision to use a SaaS solution over building in-house. The decision was documented in an ADR with alternatives considered, cost analysis, and risk assessment. Post-implementation review confirmed the decision was correct, saving an estimated 18 months of development time and $2M in build costs.
# .github/workflows/architecture-compliance.yml
name: Architecture Compliance Gate
on: pull_request
jobs:
fitness-functions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check circular dependencies
run: |
! jdepend -file . | grep -q "cycles"
- name: Naming convention compliance
run: |
! find src -name "*.ts" -exec grep -l "interface.*Impl" {} \; | grep .
- name: API contract compatibility
run: |
diff-api openapi-spec-v2.yaml openapi-spec-v3.yaml || true
- name: Principle adherence
run: |
python scripts/check-principles.py --principles docs/architecture/principles.yaml
- name: Notify ARB on violation
if: failure()
run: |
gh issue create --title "Architecture compliance failure: ${{ github.sha }}" \
--body "PR ${{ github.event.number }} failed fitness functions." \
--label "architecture"
# Initialize ADR tool
adr init docs/architecture/decisions/
adr new "Use Event-Driven Architecture for Order Processing"
adr new "Adopt PostgreSQL as Primary Database"
adr new "Deprecate Legacy SOAP Integration" -s 2
# Link ADRs
adr new -s 4 -s 5 "Migrate from Monolith to Microservices"
# Output
# docs/architecture/decisions/
# 0001-use-event-driven-architecture-for-order-processing.md
# 0002-adopt-postgresql-as-primary-database.md
# 0003-deprecate-legacy-soap-integration.md
# 0004-migrate-from-monolith-to-microservices.md
| Anti-Pattern | Why It Hurts | Fix |
|---|---|---|
| ARB as rubber stamp | Every submission approved. No value added. | Require alternatives analysis. Challenge assumptions. |
| Over-governing small decisions | Teams wait weeks for trivial approvals. | Delegate routine decisions to domain architects. |
| Principles without enforcement | Aspirational but ignored. Cynicism. | Fitness functions in CI/CD. Reference in review criteria. |
| No follow-up on conditions | Conditional approvals never verified. Architecture drift. | Track conditions to closure. Post-implementation review. |
| Governance as gate | Teams bypass ARB. Shadow IT. | Position as enabling service. Office hours for early feedback. |
| Ivory tower governance | Architects disconnected from engineering reality. | Embed architects in delivery teams. Rotation program. |
| Measuring activity not outcomes | Counting reviews completed, not quality. | Track compliance rate, exception reduction, drift detected. |
| One-size-fits-all governance | Same process for prototypes and critical systems. | Risk-based tiering. Lighter process for low-risk changes. |
adr-tools for CLI generation. Log4brains for searchable ADR portal.` interface EventObserver { onEvent(event: T): Promise; }
class EventBus { private observers: Set<EventObserver> = new Set(); subscribe(observer: EventObserver): void { this.observers.add(observer); } unsubscribe(observer: EventObserver): void { this.observers.delete(observer); } async emit(event: T): Promise { const results = Array.from(this.observers).map(o => o.onEvent(event)); await Promise.allSettled(results); } } `
config: defaults: timeout: 30s retryCount: 3 overrides: production: timeout: 60s retryCount: 5 development: timeout: 300s retryCount: 1
| Metric | Threshold | Severity | Action |
|---|---|---|---|
| Error rate | > 1% over 5min | Critical | Page on-call |
| p99 latency | > 2s over 5min | Warning | Investigate |
| Throughput drop | > 50% over 1min | Critical | Check upstream |
| Queue depth | > 1000 over 1min | Warning | Scale consumers |
| Disk usage | > 85% | Warning | Clean or expand |
| Memory usage | > 90% heap | Critical | Restart or scale |
| Anti-Pattern | Symptom | Root Cause | Solution |
|---|---|---|---|
| Premature optimization | Complex code for no measured benefit | Guessing instead of profiling | Measure first, optimize based on data |
| Copy-paste reuse | Duplicate code across codebase | Lack of abstraction | Extract shared logic into libraries |
| Gold-plating | Features with no current requirement | Over-engineering | YAGNI — build what's needed now |
| Magical thinking | Assumptions without validation | Skipping error handling | Handle all failure modes explicitly |
Cache hierarchy: L1 (in-memory local) → L2 (distributed Redis/Memcached) → L3 (CDN/Edge). Cache invalidation: TTL-based (simple, stale), event-based (complex, fresh), write-through (consistent, higher write latency), write-behind (fast writes, eventual consistency).