- Modified the autodev state to reflect the current testing phase and details of the new `jetson-e2e` tests. - Enhanced the "How to Test" documentation to provide clearer instructions on the demo replay validation process, including video and tlog alignment steps. - Updated architectural documentation to include the new demo replay operator flow and its dependencies. - Documented the removal of deprecated auto-sync features and clarified the operator-facing UI for replay validation. - Added new entries in the dependencies table for upcoming tasks related to the demo replay flow. These changes improve clarity and usability for operators and developers working with the demo replay system.
8.3 KiB
Step 2: Solution Analysis
Role: Professional software architect
Goal: Produce architecture.md, system-flows.md, data_model.md, and deployment/ from the solution draft
Constraints: No code, no component-level detail yet; focus on system-level view
Phase 2a.0: Glossary & Architecture Vision (BLOCKING)
Role: Software architect + business analyst
Goal: Align the AI's mental model of the project with the user's intent BEFORE drafting architecture.md. Capture domain terminology and the user's high-level architecture vision so every downstream artifact (architecture, components, flows, tests, epics) is grounded in confirmed user intent — not in AI inference.
Inputs:
_docs/00_problem/problem.md,acceptance_criteria.md,restrictions.md_docs/00_problem/input_data/*_docs/01_solution/solution.md(and any earliersolution_draft*.mdsiblings)- Any blackbox-test findings produced in Step 1
Outputs:
_docs/02_document/glossary.md(NEW)- A confirmed "Architecture Vision" paragraph + bullet list held in working memory and used as the spine of Phase 2a's
architecture.md
Procedure:
-
Draft glossary — extract project-specific terminology from inputs (NOT generic software terms). Include:
- Domain entities, processes, and roles
- Acronyms / abbreviations
- Internal codenames or product names
- Synonym pairs in active use (e.g., "flight" vs. "mission")
- Stakeholder personas referenced in problem.md
Each entry: one-line definition, plus a parenthetical source (
source: problem.md,source: solution.md §3). Skip terms that have a single well-known industry meaning (REST, JSON, etc.).
-
Draft architecture vision — synthesize from inputs:
- One paragraph: what the system is, who uses it, the shape of the runtime topology (monolith / services / pipeline / library / hybrid).
- Components & responsibilities (one-line each). At this stage these are intent-level, not the formal decomposition that Step 3 produces.
- Major data flows (one or two sentences each).
- Architectural principles / non-negotiables the user has implied (e.g., "DB-driven config", "no per-component state outside Redis", "all UI traffic via REST + SSE only").
- Open architectural questions the AI cannot resolve from inputs alone.
-
Present condensed view to the user (NOT the full draft files — a synopsis only):
══════════════════════════════════════ REVIEW: Glossary + Architecture Vision ══════════════════════════════════════ Glossary (N terms drafted): - <Term>: <one-line definition> - ... Architecture Vision: <one-paragraph synopsis> Components / responsibilities: - <component>: <one-line> - ... Principles / non-negotiables: - <principle> - ... Open questions (AI could not resolve): - <q1> - <q2> ══════════════════════════════════════ A) Looks correct — write glossary.md, use vision for Phase 2a B) I want to add / correct entries (provide diffs) C) Answer the open questions first, then re-present ══════════════════════════════════════ Recommendation: pick C if open questions exist, otherwise A ══════════════════════════════════════ -
Iterate:
- On B → integrate the user's diffs/additions, re-present the condensed view, loop until A.
- On C → ask the listed open questions one round (M4-style batch), integrate answers, re-present.
- Do NOT proceed to step 5 until the user picks A.
-
Save:
- Write
_docs/02_document/glossary.mdwith terms in alphabetical order. Include a top-line**Status**: confirmed-by-userand the date. - Hold the confirmed vision (paragraph + components + principles) in working memory; Phase 2a will materialize it into
architecture.mdand must preserve every confirmed principle and component intent verbatim.
- Write
Self-verification:
- Every glossary entry traces to at least one input file (no invented terms)
- Every component listed in the vision is one the inputs reference
- All open questions are either answered or explicitly deferred (with the user's acknowledgement)
- User picked option A on the latest condensed view
BLOCKING: Do NOT proceed to Phase 2a until glossary.md is saved and the user has confirmed the architecture vision.
Phase 2a: Architecture & Flows
- Read all input files thoroughly
- Incorporate findings, questions, and insights discovered during Step 1 (blackbox tests)
- Apply confirmed vision from Phase 2a.0: the architecture document must include a top-level
## Architecture Visionsection that contains the user-confirmed paragraph, components, and principles verbatim. The rest ofarchitecture.md(tech stack, deployment model, NFRs, ADRs) builds on top of that section, never contradicts it - Research unknown or questionable topics via internet; ask user about ambiguities
- Document architecture using
templates/architecture.mdas structure - Document system flows using
templates/system-flows.mdas structure
Self-verification:
architecture.mdopens with a## Architecture Visionsection matching Phase 2a.0- Architecture covers all capabilities mentioned in solution.md
- System flows cover all main user/system interactions
- No contradictions with problem.md, restrictions.md, or the confirmed vision
- Technology choices are justified
- Blackbox test findings are reflected in architecture decisions
- Every term used in
architecture.mdthat is project-specific appears inglossary.md
Save action: Write architecture.md and system-flows.md
BLOCKING: Present architecture summary to user. Do NOT proceed until user confirms.
Phase 2b: Data Model
Role: Professional software architect Goal: Produce a detailed data model document covering entities, relationships, and migration strategy
- Extract core entities from architecture.md and solution.md
- Define entity attributes, types, and constraints
- Define relationships between entities (Mermaid ERD)
- Define migration strategy: versioning tool (EF Core migrations / Alembic / sql-migrate), reversibility requirement, naming convention
- Define seed data requirements per environment (dev, staging)
- Define backward compatibility approach for schema changes (additive-only by default)
Self-verification:
- Every entity mentioned in architecture.md is defined
- Relationships are explicit with cardinality
- Migration strategy specifies reversibility requirement
- Seed data requirements defined
- Backward compatibility approach documented
Save action: Write data_model.md
Phase 2c: Deployment Planning
Role: DevOps / Platform engineer Goal: Produce deployment plan covering containerization, CI/CD, environment strategy, observability, and deployment procedures
Use the /deploy skill's templates as structure for each artifact:
- Read architecture.md and restrictions.md for infrastructure constraints
- Research Docker best practices for the project's tech stack
- Define containerization plan: Dockerfile per component, docker-compose for dev and tests
- Define CI/CD pipeline: stages, quality gates, caching, parallelization
- Define environment strategy: dev, staging, production with secrets management
- Define observability: structured logging, metrics, tracing, alerting
- Define deployment procedures: strategy, health checks, rollback, checklist
Self-verification:
- Every component has a Docker specification
- CI/CD pipeline covers lint, test, security, build, deploy
- Environment strategy covers dev, staging, production
- Observability covers logging, metrics, tracing, alerting
- Deployment procedures include rollback and health checks
Save action: Write all 5 files under deployment/:
containerization.mdci_cd_pipeline.mdenvironment_strategy.mdobservability.mddeployment_procedures.md