architect — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited architect (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Architect Skill — drives design decisions through Socratic questioning and produces a complete technical documentation system.
The architect's deliverables are the documentation system itself. Writing overview.md is the act of system decomposition; writing domain-model.md is the act of establishing ubiquitous language. Documentation is not a by-product of design — documentation IS the design.
domain-model.md implements DDD Ubiquitous Language — the single source of truth (SSOT) for business term <-> technical term mappingdocs/ before coding begins1. User Story → Define user experience flows and acceptance criteria (no technical details)
2. Architecture Design → User Story pattern recognition → Socratic questioning → brainstorming divergence
→ Converge using methodology references → Output overview.md + domain-model.md + ADR
3. Dev/Test Env Design → Build feedback loops for AI Agent TDD
4. Module Detail Design→ Module-level pattern recognition → questioning → output ≤400 line module docs
5. Layered Test Plan → Generate L2-L4 plans based on User Stories + tech design + env design
(L2-L4)
6. Parallel TDD Dev → Implement in parallel using agent teams + superpowersAll documentation must reside under `docs/` in the project root. In the tree below,docs/is the root, and all subdirectories (product/,architecture/, etc.) are children ofdocs/. Absolute paths look like<project-root>/docs/product/prd.md. Do not create standaloneproduct/orarchitecture/directories at the project root.
docs/ # <-- The single root directory for all documentation
├── TODO.md # Documentation review tracking checklist (SSOT)
├── product/ # docs/product/ — Product layer: user perspective
│ ├── prd.md # docs/product/prd.md
│ └── user-stories/
│ ├── README.md # docs/product/user-stories/README.md
│ └── {service-or-module}.md # docs/product/user-stories/{service}.md
├── architecture/ # docs/architecture/ — Architecture layer: system design decisions
│ ├── overview.md # docs/architecture/overview.md (≤400 lines)
│ ├── domain-model.md # docs/architecture/domain-model.md — Ubiquitous Language SSOT
│ ├── tech-stack.md # docs/architecture/tech-stack.md
│ └── {service}/ # docs/architecture/{service}/
│ ├── overview.md # docs/architecture/{service}/overview.md (≤400 lines)
│ └── {topic}.md # docs/architecture/{service}/{topic}.md (≤400 lines)
├── testing/ # docs/testing/ — Testing layer: strategy and test cases
│ ├── strategy.md # docs/testing/strategy.md
│ └── services/{service}/ # docs/testing/services/{service}/
└── deployment/ # docs/deployment/ — Deployment layer: environment operations manual
├── local-dev.md
├── ci.md
└── cd.mddocs/product/user-stories/{service}.md)What to write: User experience flows, Epic breakdown, verifiable acceptance criteria (AC). May include NFRs (non-functional requirements).
Strictly forbidden: Technical implementation details (no class names, API paths, database fields, or protocol details). User Stories are the user's perspective, not a technical specification.
Document structure:
gateway.md, sandbox.md) — one file per service domainUS-{module-abbreviation}-{number} (e.g., US-FI-01)✅ Implemented / ⚙️ In Progress / Not Starteduser-stories/README.mdCompanion Skill: story-craftsman (guided interviews to uncover context + standard template generation)
docs/architecture/)Step 2 is the architect's core work. Do not jump straight to drawing architecture diagrams after reading the User Stories — first identify the architectural concerns implied in the User Stories, converge design decisions through questioning, then commit them to documentation.
#### 2a. User Story Pattern Recognition
After reading Step 1's User Stories, identify the implicit architectural concerns. Common User Story patterns and their architectural signals:
| Appears in User Stories... | Architecture Signal | Questioning Direction |
|---|---|---|
| Multiple tenants / OEM customers / white-label | Multi-tenancy isolation | Data isolation level, configuration variance, failure blast radius |
| Real-time / push / streaming / online status | Real-time communication | Latency tolerance, push failure strategy, concurrent connection scale |
| Scheduled / periodic / auto-execution | Scheduling system | Failure compensation vs skip, concurrent trigger mutual exclusion, timezone handling |
| Distributed update / remote management / software upgrade | Offline + eventual consistency | Offline node catch-up, interrupted upgrade recovery, canary + rollback |
| Third-party payment / external API integration | External integration | Failure isolation, retry idempotency, reconciliation mechanism |
| Audit / compliance / operation records | Audit trail | Immutability, retention period, access control |
| Orders / tickets / entity lifecycle | State machine | State definitions, transition rules, concurrent transitions, invalid transition handling |
| Cross-service coordination / multi-step process | Distributed transactions | Eventual vs strong consistency, compensation mechanism, timeout handling |
| Search / reports / data analytics | Read-write separation | Query model vs write model, data sync latency tolerance |
| Any new feature / user behavior change | Observability | How to measure success? What metrics are needed? Event tracking needed? A/B experiment validation needed? |
Not all User Stories will trigger every signal. A simple CRUD feature does not need to be questioned about distributed consistency. Only question what is relevant to the current User Story.
#### 2b. Socratic Questioning
For each identified architectural concern, converge design decisions through questioning rather than giving direct answers. The goal is to have the user (or yourself) explicitly answer the following:
Boundary definition (corresponding to DDD Bounded Context):
Integration patterns:
Observability (must question for every feature):
Design constraints:
#### 2c. Architecture Quality Principles
Designs must be checked against the following principles. These are also the criteria used by code-review to evaluate design quality.
Structural principles:
Robustness principles:
Evolvability principles:
#### 2d. Solution Divergence and Convergence
After gathering sufficient information through questioning:
ADR reasoning chain (must be included — conclusions alone are insufficient):
Pending ADR: When questions remain unanswered or information is insufficient for a decision, a Pending ADR must be created (Decision marked as Pending) rather than skipping it. A Pending ADR records the known Context and Options, and explicitly states "which questions must be answered before a decision can be made." This ensures uncertain decision points are explicitly tracked and not forgotten during subsequent design.
#### 2e. Documentation Output
Output files:
overview.md — Architecture overview (design goals table → Mermaid architecture diagram → component responsibilities table → sub-document navigation table)domain-model.md — Ubiquitous Language SSOT (business term <-> technical term mapping, essentially implementing DDD Ubiquitous Language)Documentation standards:
|Document Status at the beginning of the file<br/> for line breaks in Mermaid diagram nodes — `\n` is prohibitedCompanion Skills: doc-writing (HWPR to mark human design decisions, AWOR for expanded detail), superpowers:brainstorming (solution divergence)
docs/deployment/local-dev.md)What to write: L1/L2/L3 layered environment architecture, multi-worktree port isolation strategy, shared channel switching mechanism, hot-reload configuration. The goal is to build a fast-feedback TDD loop for AI Agents.
Documentation standards:
local-dev.md has two sections: User Guide (commands and results, for developers) + Implementation Details (design rationale, for maintainers)make targets as the entry point for operations; bare commands are prohibited in documentationCompanion Skills:
multi-worktree-dev (L1/L2/L3 layered design, port hash offset, shared channel exclusive switching, health probing)mock-engine (Mock infrastructure: start/stop mock services, load test data, create test scenarios)docs/architecture/{service}/*.md)What to write: Internal design of a single service/module — interface contracts, data flows, state machines, key algorithms.
Like Step 2, Step 4 also requires first identifying module-level design concerns, then converging through questioning.
#### 4a. Module-Level Pattern Recognition
| Module Characteristic | Questioning Direction |
|---|---|
| Exposes external APIs | Error classification (which are retryable / which are not), idempotency, versioning strategy |
| Entities with lifecycles | State definitions, transition guard conditions, concurrent transitions, invalid transition handling |
| Depends on external services | Timeout strategy, circuit-breaker thresholds, degradation plan, anti-corruption layer design |
| High-concurrency reads/writes | Lock granularity, optimistic vs pessimistic, cache consistency |
| Complex business rules | Will rules change? Configuration-driven vs hard-coded? How to handle rule conflicts? |
| User-behavior-related features | What tracking events are needed? How is the funnel defined? Is A/B experimentation needed? |
#### 4b. Output After Questioning
After converging through questioning, produce a module design document that must include:
Documentation standards:
{service}/overview.md, move details to {service}/{topic}.mdCompanion Skill: doc-writing (HWPR/AWOR framework)
docs/testing/)What to write: A layered testing strategy generated from Step 1 (User Story acceptance criteria) + Step 2 (technical design) + Step 3 (environment design).
Document structure:
docs/testing/
├── strategy.md # Overview (≤400 lines): layer table, layering logic, mock architecture, traceability matrix, CI/CD
└── scenarios/ # AC-level scenario matrices (strategy.md should not contain individual test cases)
├── ep1-<epic>.md # By Epic (product/QA perspective)
├── tech-<module>.md # By technical module (developer perspective)
└── tech-nfr.md # NFR degradation/fault tolerancestrategy.md must include:
Scenario file AC-level traceability table: Fixed 8-column format AC Scenario | Smoke | L1 | L2-1 | L2-2 | L3-1 | L3-2 | L4, each cell filled with specific test case IDs.
Key principles:
make mock-scenario for controlled, repeatable executionQuality standards (also the criteria used by code-review for evaluating tests; see testing-strategy skill for detailed layered strategy):
Companion Skills:
testing-strategy (generate complete layered strategy by project type, includes references/engagement-example.md real-world example)mock-engine (mock infrastructure management: L1/L2 stub/mock service startup, test scenario data loading)multi-worktree-dev (test parallel safety design — multiple worktrees do not contend for shared channels)docs/deployment/ci.md + cd.md)What to write: CI pipeline quality gates, CD deployment strategy, K8s resource configuration, Ingress routing, secrets management.
Companion Skills:
| Task | Skill |
|---|---|
Write/review .gitlab-ci.yml | gitlab-ci |
| Full deployment workflow for new apps (CI + K8s + Ingress + Vault + Crossplane) | cicd-developer |
| ArgoCD GitOps sync/rollback/troubleshooting | argocd |
| Set up CICD component stack for new clusters | argocd-deploy |
| View/troubleshoot K8s cluster resources | k8s-ops |
| Image registry Robot Account | harbor |
| Vault secrets management | vault-kv-manager |
| Runner selection and troubleshooting | gitlab-instance-runners |
| Embedded repo CI Pipeline | embed-ci-setup |
| Jenkins pipeline management | jenkins |
| Operation | Must Also Update |
|---|---|
| Add/delete/rename document | docs/TODO.md |
| Add User Story | user-stories/README.md index table |
| Change architecture component responsibilities | architecture/overview.md mapping table |
| Add domain terminology | architecture/domain-model.md |
| Document + code changed together | Put in the same MR (use gitlab-mr skill) |
superpowers:writing-plans, superpowers:brainstorming, and other skills generate design documents or plans during a session. These documents must be consolidated into the `docs/` system — they cannot exist only in session context or temporary files:
| Superpowers Output | Consolidation Target |
|---|---|
| Feature plan / brainstorm conclusions | Corresponding Epic in docs/product/user-stories/{service}.md |
| Overall technical plan / writing-plans output | docs/architecture/overview.md or corresponding service overview |
| Module implementation plan | docs/architecture/{service}/{topic}.md |
| Test plan | docs/testing/strategy.md or services/{service}/ |
| Dev environment design | docs/deployment/local-dev.md |
Consolidation timing: After superpowers plan is confirmed and before coding starts — consolidate documents first, then begin coding.
docs/TODO.md)TODO.md tracks all items pending review using three states: [ ] To Do / [/] In Progress / [x] Done
Review focus areas:
domain-model.md (business term <-> technical term mapping)| Step | Task | Skill to Use |
|---|---|---|
| Step 1 | Write User Stories | story-craftsman |
| Step 2 | Architecture design: solution divergence | superpowers:brainstorming |
| Step 2 | Architecture design: write documentation | doc-writing |
| Step 3 | Design dev/test environment layering | multi-worktree-dev |
| Step 4 | Module detail design | doc-writing |
| Step 5 | Generate layered test plan | testing-strategy + multi-worktree-dev |
| Step 6 | CI Pipeline configuration | gitlab-ci / embed-ci-setup / jenkins |
| Step 6 | CD full deployment workflow | cicd-developer |
| Step 6 | K8s / images / secrets | k8s-ops + vault-kv-manager |
| Throughout | Event tracking definition and management | event tracking platform |
| Throughout | A/B experiments / Feature Flags | A/B experiment platform |
| Throughout | SLA metric configuration | sla-metric |
| Throughout | Monitoring dashboards / alerts | grafana + prometheus |
| Throughout | Error monitoring | sentry + sentry-onboarding |
| Throughout | Submit documentation + code together as MR | gitlab-mr |
| Throughout | R&D process orchestration | dev-workflow |
| Throughout | Create or update the Skill itself | superpowers:writing-skills |
references/)The questioning and solution evaluation in Steps 2/4 can reference the following methodology decision cards. Each card answers only three questions: when to use it, core concepts quick reference, and when NOT to use it.
The AI agent already has sufficient knowledge of these methodologies — the value of the decision cards is helping determine "should I use this for the current scenario."
| Decision Card | Applicable Signals |
|---|---|
references/ddd.md | Confused business terminology, unclear service boundaries, multi-team collaboration |
references/event-driven.md | Async processing, cross-service coordination, state change notifications |
references/hexagonal.md | Multiple external integrations, need for testability, preventing framework lock-in |
references/state-machine.md | Entities with lifecycles, complex state transition rules |
references/integration-patterns.md | Third-party API integration, unreliable external systems |
references/multi-tenant.md | OEM / white-label / multi-tenant scenarios |
Read User Stories → Directly write overview.md and draw Mermaid diagrams
→ No questioning, service boundaries drawn by intuition, ADR has no reasoning chainRead User Story → Identify "multi-tenant + distributed update" signals
→ Question: What level of data isolation between tenants? What's the catch-up strategy for offline nodes?
→ Brainstorm 3 approaches
→ Reference DDD + multi-tenant decision cards to evaluate
→ Select approach, write ADR (with complete reasoning chain)
→ Output overview.md + domain-model.md## US-GW-01 Message Routing
After a user sends a message, the Gateway calls the `resolve_intent()` method through
IntentResolveMiddleware, queries the PostgreSQL workspace table to get the agent_id,
then distributes it to the corresponding Sandbox Pod via Redis Pub/Sub.Problem: AC should describe the results the user sees, not class names, databases, or middleware.
## US-GW-01 Message Routing
**Background**: Users need to maintain independent Agent context across different group chats.
**User Story**: As a team member, I want each group chat to have its own Agent context
so that the Agent remembers each group's context independently without cross-contamination.
**AC**:
- Given the user has had conversations in both Group A and Group B
- When the user asks a question in Group A
- Then the Agent responds based only on Group A's history, without mixing in Group B's contentdocs/architecture/gateway.md (800 lines, containing all subsystem details)docs/architecture/gateway/
├── overview.md (≤400 lines, architecture diagram + sub-document navigation table)
├── intent-resolve.md (≤400 lines)
├── thread-lane.md (≤400 lines)
└── feishu-card.md (≤400 lines)After brainstorming is complete, directly say "ok, let's start coding"
→ Plan exists only in session context, lost in next session, cannot serve as test baselineBrainstorming complete → Write into docs/architecture/overview.md → commit → start coding~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.