From enterprise-harness-engineering
Guides architecture design via Socratic questioning, generates technical docs like overview.md, domain-model.md, and ADR for new features, systems, or project structuring.
npx claudepluginhub addxai/enterprise-harness-engineering --plugin enterprise-harness-engineeringThis skill uses the workspace's default tool permissions.
Architect Skill — drives design decisions through Socratic questioning and produces a complete technical documentation system.
Creates Architecture Decision Records (ADRs) in MADR format, arc42 documentation, and plan-context.md as context bridge to Claude Code. For architecture, tech stack, system design, or technical structuring.
Generates architecture/design documents from approved SRS docs when no prior design exists, proposing 2-3 approaches with trade-offs and securing section-by-section approval.
Designs system architecture and high-level technical strategy. Use for new systems or subsystems, major refactors, technology selections, system boundaries, and long-term decisions with broad impact.
Share bugs, ideas, or general feedback.
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 + superpowers
All 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.md
docs/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.
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.
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:
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:
After gathering sufficient information through questioning:
superpowers:brainstorming to diverge and explore possible approachesreferences/ to evaluate approaches (see this skill's references/ directory)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.
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 filedomain-model.md — consult it before writing; do not invent new concepts<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.
| 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? |
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 tolerance
strategy.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 chain
Read 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 content
docs/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 baseline
Brainstorming complete → Write into docs/architecture/overview.md → commit → start coding