name: legacy-ibmi-module-analyzer
description: Assemble and validate an IBM i business module from approved flow analyses or a ready module-first context package, producing the evidence-backed module overview plus Program Flow and Data Flow artifacts. Operation Flow and System Flow are no longer default outputs because they require stronger SME or architecture evidence than most code-backed runs provide. Use when multiple flows belong to the same business module, or when legacy-module-context-intake has normalized external RAG / human context and you need evidence-bounded module assembly before BRD writing and review. Layer 1.5 (platform-specific) skill. Implements the model defined in docs/module-analysis-model.md.
IBM i Legacy Module Analyzer
Skill Card
| Field | Notes |
|---|---|
| Problem solved | Assembles multiple IBM i flows or module-first context into a focused module coverage map and BRD eligibility crosswalk. |
| Input | Flow analyses, program analyses, data/screen evidence, BAU notes, or an accepted 00_context_packages/<MODULE-SLUG>/ package. |
| Output | module-overview.md, Mermaid-backed 03-program-flow.md, 04-data-flow.md, and module-review-checklist.md with review status and BRD source eligibility. |
| Core prompt strategy | Preserve evidence boundaries across views, use diagrams as traceable summaries only where sourced, and keep uncertain/generated behavior as TBDs. |
| Upstream skill | legacy-ibmi-flow-analyzer or legacy-module-context-intake. |
| Downstream consumer | legacy-brd-writer, legacy-spec-writer, SMEs, and module review workflows. |
| Validation standard | Program Flow and Data Flow align without contradictions, all key nodes trace to eligible evidence or TBDs, and module-analysis model rules are followed. |
| Known risk | Producing polished diagrams or BRD crosswalk rows that make unresolved flow gaps look approved. |
| Practical example | Combine order entry, release, and cancellation flows into one focused Order Management module analysis with program and data coverage. |
Purpose
Assemble multiple flow analyses, BAU (Business As Usual) notes, and SME context into one business module coverage map focused on the two views that are consistently evidence-backed in code-driven field work: Program Flow and Data Flow.
This skill is the last platform-specific layer before legacy-brd-writer
and the BRD Review Gate. It does not re-analyze flows or programs; it
aggregates and validates what flow-analyzer and program-analyzer produced.
Do not concatenate full flow or program Markdown to assemble a module. Use
approved flow rows and compact program artifacts first, then open
human-readable Markdown only for targeted clarification.
For the standard BRD/spec path, those code-backed inputs are required: a
module-first context package can seed the synthesis, but it cannot by itself
make Program Flow, Data Flow, or the downstream BRD confirmed_from_code.
This is the only skill that produces the canonical module-analysis artifacts
under 04_modules/<MODULE-SLUG>/. If upstream 00_context_packages/ files
already contain operation/system/program/data context views, treat them as
evidence/context input only. Do not copy or report upstream context views as
final module-analysis outputs.
01-operation-flow.md and 02-system-flow.md are intentionally not default
outputs. In field testing they often carried weak, over-generalized, or
incorrect business/architecture narratives unless backed by strong SME or
architecture evidence. Preserve such information as SME-confirmed scope,
interface notes, BRD crosswalk rows, or TBDs in module-overview.md instead
of generating standalone flow files.
The module overview and evidence views are not a BRD fact source by
default. They are a coverage and review surface. Only rows backed by
confirmed_by_sme, approved
flow/program/inventory evidence, or other explicitly eligible evidence may be
marked as BRD source material. Context-only, generated-draft, candidate-only,
or source-documented-but-unreviewed rows must become TBD-*, SME questions, or
coverage gaps in the BRD handoff.
The canonical model is documented in ../../docs/module-analysis-model.md —
read that first if you have not already.
Inputs
Accept:
- Module definition — module slug, business name, scope statement, the list of flows that belong to this module
- Ready module context package from
legacy-module-context-intake(00_context_packages/<MODULE-SLUG>/context-index.yaml) when this is a module-first RAG / human-context run. Treat it as context and evidence map, not as approved module analysis, object inventory, program analysis, or flow analysis. Preserve its source eligibility labels. - Approved flow analyses for every flow in scope
(
flow-<FLOW-SLUG>.md)- For code-backed runs, each approved flow should be
legacy-ibmi-flow-analyzerv0.2.3 or later, or otherwise expose the equivalentFlow Replay Path,Cross-Program Field Lineage,Flow Persistence Matrix, node artifact availability for compact program sidecars, edge Evidence Source / Resolution, andException Propagation Chainwith Validation Logic / routine-local exception closure carry-forward sections. Older flow artifacts require refresh or a named SME waiver before they can support module-level replay, lineage, persistence, or exception claims.
- For code-backed runs, each approved flow should be
- Approved program analyses for every program referenced by those flows
- For code-backed runs, prefer program-analyzer v0.2.8 or later core
artifacts:
program-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml, andmessage-inventory.yaml. Optional sidecars (file-io-inventory.yaml,field-mutation-matrix.yaml, andsql-inventory.yaml) are required only when triggered by the program tier or when module claims need file I/O, persisted mutation, or SQLRPGLE evidence. Use available sidecars to preserve field calculations, handoffs, skipped work, rollback, message meanings, SQLRPGLE evidence, and visible error outcomes when flow evidence references the underlying program-level detail.
- For code-backed runs, prefer program-analyzer v0.2.8 or later core
artifacts:
- Approved inventory with module scope confirmed
- BAU notes from SME — operational rhythm, manual processes, exception handling, business context not in code
- Optional: architecture diagrams (for overview interface notes), data lineage documents, regulatory references
- Conditionally required from triggers:
- When
inventory.yaml.sme_review.downstream_required.screen_report_analyzer.required: true→ approvedscreen-report-analysis.mdfor every triggered DSPF / PRTF / menu. The overview and BRD crosswalk consume these as primary sources for screen-driven rules; absence means missing 40% of user-facing decisions. - When
inventory.yaml.sme_review.downstream_required.data_model_analyzer.required: true→ approved04_modules/<MODULE-SLUG>/data-model/dictionary.md. View 4 (Data Flow) populates from this dictionary verbatim instead of re-deriving entities from per-program File I/O tables.
- When
Trigger rules and override protocol live in
skills/legacy-ibmi-inventory/references/downstream-triggers.md.
Stop and require clarification if:
- Any in-scope flow lacks an approved
flow-<FLOW-SLUG>.md→ route tolegacy-ibmi-flow-analyzer, unless a ready00_context_packages/<MODULE-SLUG>/package is explicitly being used for a context-only draft; in that case, carry missing flow-analysis coverage asTBD-*, setevidence_mode: context_only, and keep affected claims atneeds_sme_review - The requested output is a standard code-backed BRD/spec input but
01_inventory/object-map.md, in-scope program analyses, or in-scope flow analyses are missing → route to the earliest missing code-backed skill (legacy-ibmi-inventory,legacy-ibmi-program-analyzer, orlegacy-ibmi-flow-analyzer) instead of approving module synthesis - The requested output is a standard code-backed BRD/spec input but in-scope
flow analyses do not expose replay, field-lineage, persistence, edge
Evidence Source / Resolution, and exception-chain coverage, and no named
SME waiver exists → route back to
legacy-ibmi-flow-analyzerfor v0.2.3 refresh - A trigger is
required: truebut the corresponding artifact is missing → route to the triggered skill (legacy-ibmi-screen-report-analyzerorlegacy-ibmi-data-model-analyzer), do NOT begin synthesis - Module boundary is ambiguous (does flow X belong here or in another module?) → SME-only decision
- No SME has confirmed the business name and scope of the module
Output Contract
Produce a directory 04_modules/<MODULE-SLUG>/:
04_modules/<MODULE-SLUG>/
├── module-overview.md ← summary, evidence-view index, blocking TBDs, sign-off
├── 03-program-flow.md ← Program Flow: application/program view (aggregates flows)
├── 04-data-flow.md ← Data Flow: data view (aggregates lineage and persistence)
└── module-review-checklist.md ← SME sign-off for the whole module
Use:
templates/module-overview.mdandtemplates/view-template.mdas scaffoldingreferences/output-contract.mdfor the file format and required fields for module-overview and the two default evidence viewsreferences/synthesis-rules.mdfor how to aggregate across flows../../docs/module-analysis-model.mdfor the canonical model
Follow:
../../docs/id-conventions.mdfor stable IDs (MODULE-*,VIEW-*,BR-*,ACTOR-*,SYS-*,DATA-*)../../docs/evidence-and-knowledge-taxonomy.mdfor evidence tagging../../docs/input-readiness-rubric.mdfor input readiness scoring
Each default evidence view file must include a ## Mermaid Flow Diagram section
immediately after the view status / summary material and before evidence,
inventory, or traceability tables. Mermaid diagrams are a visual coverage
surface for SME review, not independent evidence. Tables remain required as
evidence and traceability support, and every node/edge must be backed by
eligible evidence or a named TBD-*. When input is incomplete, include a
Mermaid placeholder node with a named TBD-* rather than drawing a plausible
but unsupported flow.
Mermaid preview guardrail: Mermaid source blocks are required; rendered IDE,
browser, or extension previews are optional. Do not open diagram previews unless
the user explicitly asks for visual inspection. For large modules, many
in-scope flows, or diagrams with more than about 80 nodes/edges, skip preview,
record the skip in module-overview.md, and continue with structural/manual
review. Never reopen the same preview or preview every view as a completion
check.
Examples:
examples/module-positive/— complete CARD-AUTH module with overview plus Program Flow and Data Flowexamples/incomplete-module-negative/— module with missing flow / SME gap
Step Contract
This skill is one step in the Legacy Spec Factory reverse chain. It conforms
to the canonical Step Contract shape — see
../legacy-step-contract/SKILL.md and
../legacy-step-contract/references/step-contract.md for the full
field-level rules. The summary below is normative for this skill.
Input
- Required for standard code-backed runs: module definition (slug +
business name + scope statement + list of in-scope flows); approved
01_inventory/inventory.yamlplus01_inventory/object-map.md; approvedflow-<FLOW-SLUG>.mdfor every in-scope flow; core compact program artifacts for every program referenced by confirmed flows (program-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml,message-inventory.yaml); optional compact program sidecars (file-io-inventory.yaml,field-mutation-matrix.yaml,sql-inventory.yaml) when triggered or needed by module claims; BAU notes from SME covering operational rhythm and manual procedures. - Required for explicit context-only drafts: ready
00_context_packages/<MODULE-SLUG>/context-index.yamlfromlegacy-module-context-intake; named owner risk acceptance that source/object evidence is unavailable for this cycle; all missing inventory/program/flow coverage carried asTBD-*; BAU notes from SME; source eligibility labels preserved for every carried context claim. - Optional: architecture diagrams, data lineage docs, regulatory references.
- Input readiness scoring:
0-5 blocked: module scope unresolved, neither approved upstream flow analyses nor an explicit risk-accepted context-only package is supplied, triggered data/screen/report analysis missing, evidence links broken, or evidence authorization unresolved.6 minimum_pass: for code-backed runs, approved inventory/object map, required flows, required program analyses, module slug/name/scope, and SME BAU notes are present; for context-only drafts, a ready context package plus named risk acceptance is present, with missing source coverage carried as blocking TBDs for later code-backed approval.7-8 usable: triggered data/screen/report outputs, architecture notes, data lineage, and known TBD ledgers are supplied.9-10 strong: SME edge cases, exception examples, sample transactions, regulatory context, modernization decision context, and flow-analyzer v0.2.3 replay / field-lineage / persistence / edge-resolution / exception-chain sections plus compact program sidecars are also supplied.- Missing architecture diagrams or regulatory references does not block the module analysis unless the module scope specifically depends on them.
- Readiness checks: for code-backed runs, every in-scope flow is
approvedorapproved_with_non_blocking_tbd, every referenced program analysis and compact sidecar set is approved/present, inventory/object map is approved, and each in-scope flow exposes replay, lineage, persistence, node artifact availability, and exception-chain coverage (or a named waiver); for context-only drafts, the context package status isready_for_module_analysis/ready_with_warningsand the output is explicitly non-approved; SME has confirmed the module's business name and boundary. - Stop conditions: any in-scope flow lacks an approved analysis in a code-backed run; any in-scope flow lacks replay / lineage / persistence / exception-chain sections needed for code-backed module claims and no waiver exists; any code-backed artifact is missing and no context-only risk acceptance is recorded; module boundary is ambiguous (which module owns flow X); no SME has confirmed module identity; BAU notes are absent.
Execution
- Procedure: see the Workflow section below (9 ordered steps).
- Allowed inference: aggregating across approved flow/program/ inventory artifacts; aggregating approved flow replay paths, field lineage, persistence outcomes, and exception propagation chains; cross-view consistency checking; computing data lifecycle and coupling score from existing Object Dependency data; deriving BRD source eligibility from upstream evidence labels.
- Forbidden assumptions: inventing business actors, upstream / downstream systems, BAU rhythm, regulatory requirements, manual intervention procedures, cross-module dependencies, module-level replay paths, field lineage, persistence lifecycles, exception recovery, or business rules or BRD conclusions (these remain seeds/questions). Tier-2 SME claims that contradict tier-1 code become TBDs, not overrides.
- TBD handling: missing flow analysis →
TBD: pending_sourcerouting tolegacy-ibmi-flow-analyzer; business context absent from BAU notes →TBD: pending_sme_judgment; ambiguous module boundary →TBD: pending_sme_judgment; incomplete data lifecycle →TBD: pending_sme(archive/purge ownership); missing replay, field-lineage, persistence, or exception-chain coverage in older flow artifacts →TBD: pending_sourceunless waived by named SME; missing compact program sidecars →TBD: pending_sourcerouted tolegacy-ibmi-program-analyzer.
Output
- Canonical directory:
04_modules/<MODULE-SLUG>/containingmodule-overview.md,03-program-flow.md,04-data-flow.md,module-review-checklist.md. Do not create01-operation-flow.mdor02-system-flow.mdby default. - Required sections: evidence-view index with per-view status, top blocking
TBDs, module-level capability seeds, BRD Functional Analysis Input
Crosswalk, BRD Source Eligibility Crosswalk, Module Program-Chain Readiness,
Module Persistence & Critical Field Summary, Module Exception & Recovery
Summary, per-view
## Mermaid Flow Diagramsections, and per-view review checklists. Program Flow must include Replay Coverage Summary. Data Flow must include Module Persistence Matrix, Critical Field Lineage Across Module, and Exception-Aware Data Risks. - Required IDs: mints
MODULE-*,VIEW-*,ACTOR-*,SYS-*, module-levelBR-*seeds, module-levelCAP-*seeds, andTBD-*. ReusesOBJ-*,EV-*,FLOW-*,NODE-*,EDGE-*,DATA-*, and flow-analyzer v0.2 IDs such asREPLAY-*,LINEAGE-*,PERSIST-*, andEXCHAIN-*.legacy-brd-writerreviews these seeds in business language; final promotion ofBR-*still happens later inlegacy-spec-writer. - Handoff status: each view independently
draft→in_review→approvedorapproved_with_non_blocking_tbd. For standard BRD/spec work, module approval requires the Code-Backed Analysis Gate: approved inventory/object map, flow analyses, and compact program artifacts. A context-only module may be reviewed as draft material, but it must remaindraftorneeds_sme_reviewfor BRD approval until the missing code-backed artifacts are supplied. Only BRD crosswalk rows with source eligibilityconfirmed_by_sme,code_backed, or approved equivalent may be markedbrd_conclusion_allowed.candidate_only,generated_draft,source_documentedwithout review, andmissingrows arequestions_only.blocked_pending_source/blocked_pending_smehalt BRD writing and any later spec-writing.
Validation
- Mechanical: overview, Program Flow, Data Flow, and checklist present;
each evidence view has a
fenced Mermaid
flowchartdiagram before its evidence / traceability tables; every Mermaid node or edge traces to source artifact, named SME note, or namedTBD-*; every claim traces to source artifact or named SME note; every cross-view reference resolves; every TBD carries a category and ID; capability seeds carry IDs. - AI semantic: cross-flow synthesis matches the flow analyses (no
new IBM i facts introduced); consistency holds (every Program Flow replay
path maps to a module event/outcome/TBD, and every Data Flow object traces
to an approved flow/program); seeds
are questions, not approved rules; replay, field-lineage, persistence, and
exception-chain gaps are carried forward instead of being summarized away;
tier-2 claims contradicting tier-1 are surfaced as TBDs; BRD sections 1-9
are either covered by BRD-eligible evidence or carry explicit
TBD-*gaps. AI-organized context cannot make a sectioncovered. - SME / human approval: module owner validates overview and scope, dev lead validates Program Flow, and data analyst validates Data Flow. Business or integration SMEs are required only for BRD crosswalk rows that depend on business/architecture claims.
- Blocking conditions: overview, Program Flow, or Data Flow lacks required
review; any consistency gap unresolved; any in-scope flow missing or unapproved
in a code-backed run; missing
object-map.mdor program analyses for a standard BRD/spec target; any capability seed contradicts the underlying flows; module scope still unconfirmed.
Emit a Step Validation Report (see
../legacy-step-contract/templates/step-validation-report.md) with
status pass, pass_with_warnings, or blocked when reporting upward
to the orchestrator.
Workflow
Confirm Module Scope
- Validate the module slug, business name, and scope statement with SME or an accepted context package.
- If
00_context_packages/<MODULE-SLUG>/is supplied, readcontext-index.yaml,contradiction-log.md, andopen-questions.mdfirst; block if the context package is not ready for module analysis. - Determine
evidence_mode:code_backedwhen approved inventory/object-map + program + flow analyses are present;context_onlyonly when a named owner has accepted missing source coverage for this cycle. - Treat any
00_context_packages/operation/system/program/data view files as intake context only. Do not copy them into04_modules/. - List in-scope flows; check every one has an approved analysis.
- For code-backed runs, confirm each in-scope flow exposes
Flow Replay Path,Cross-Program Field Lineage,Flow Persistence Matrix, edge Evidence Source / Resolution, node artifact availability forprogram-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml,message-inventory.yaml,file-io-inventory.yaml,field-mutation-matrix.yaml,sql-inventory.yaml, andException Propagation Chain, or record a named SME waiver andTBD-*. - Confirm no in-scope flow actually belongs to a different module.
- Assign
MODULE-<SLUG>-001.
Aggregate Programs, Objects, and Context
- List every program touched by any flow in scope.
- List every object and key field touched from each flow's node artifact set
and each program's compact sidecars:
program-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml,message-inventory.yaml,file-io-inventory.yaml,field-mutation-matrix.yaml, andsql-inventory.yaml. Preserve source identifiers plus business meanings for critical fields. - Cross-check against
01_inventory/inventory.yaml; createpending_sourceTBDs for gaps. - If business operation, channel, interface, SLA, security, or BAU context
is supported by SME notes or source documents, carry it into
module-overview.mdand the BRD crosswalk with source eligibility. Otherwise mark it as partial/missing; do not synthesize standalone Operation/System flow files.
Build Program Flow
- Use the Program Flow section in
references/output-contract.mdand the aggregation rules inreferences/synthesis-rules.md. - Primary source: all approved
flow-<FLOW-SLUG>.mddocuments and their approved child compact program artifacts. Do not concatenate full program analyses or flow analyses; use full Markdown only for targeted clarification when compact rows are insufficient. - Aggregate per-flow summaries; identify cross-flow dependencies and shared sub-programs.
- Add a Replay Coverage Summary that lists each in-scope flow's
REPLAY-*paths, major decision / exception branches, persisted outcomes, and missing replay / lineage / persistence gaps. - Draw the Mermaid program flow / call topology across the in-scope flows, entry programs, shared programs, exits, and external response or batch outcomes.
- Do not re-derive control flow; reference the flow / program analyses. Do not use an ASCII tree as the primary topology diagram.
- Output:
03-program-flow.md.
- Use the Program Flow section in
Build Data Flow
- Use the Data Flow section in
references/output-contract.mdand the aggregation rules inreferences/synthesis-rules.md. - Primary source: every flow's Cross-Program Data Flow,
Cross-Program Field Lineage, Flow Persistence Matrix, and Exception
Propagation Chain sections, backed by every program's
program-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml,message-inventory.yaml,file-io-inventory.yaml,field-mutation-matrix.yaml, andsql-inventory.yaml. - Compute data lifecycle per object (created / updated / read / archived / purged) by walking flows.
- Compute coupling score (number of flows touching each object).
- Identify critical field lineage, persisted outputs, skipped mutations, commit/rollback/retry impacts, coupling hotspots, cross-module data dependencies, and DB table relationships.
- Draw the Mermaid data movement / lifecycle flow showing which flows create, update, read, hand off, archive, or purge the major data objects.
- Output:
04-data-flow.md.
- Use the Data Flow section in
Evidence-View Consistency Check
- Every
REPLAY-*path in Program Flow maps to a module event, persisted outcome, exception outcome, or namedTBD-*. - Every external or durable
PERSIST-*output maps to a Data Flow object, output carrier, downstream consumer, or namedTBD-*. - Every
LINEAGE-*/PERSIST-*claim that affects modernization appears in Data Flow. - Every
EXCHAIN-*has module-level error/recovery crosswalk coverage or a namedTBD-*. - Every data object in Data Flow traces to at least one approved flow / program, dictionary row, or named source gap.
- Mismatches become consistency TBDs; do not paper over them with business or architecture narrative.
- Every
Build BRD Source Eligibility Crosswalk
- For each BRD section 1-9, list the module rows that could support the BRD.
- Use Program Flow, Data Flow, approved flows/programs/inventory, SME-confirmed scope notes, and source-documented context as sources.
- Mark each row
brd_conclusion_allowedonly when backed byconfirmed_by_sme,code_backed, or approved flow/program/inventory evidence. - Mark
source_documentedrows asneeds_sme_reviewunless the document has explicit SME approval for that claim. - Mark
candidate_only,generated_draft, andmissingrows asquestions_only; they may becomeTBD-*or SME review prompts but not BRD conclusions.
Write module-overview.md
- Evidence-view index with status for Program Flow and Data Flow.
- Top blocking TBDs surfaced from overview, Program Flow, and Data Flow.
- Optional SME-confirmed business / interface context notes when available.
- Module Program-Chain Readiness summary across replay / lineage / persistence / exception-chain coverage.
- Module Persistence & Critical Field Summary for BRD dependencies and downstream SDD data contracts.
- Module Exception & Recovery Summary for BRD error-handling coverage.
- Module-level capability seeds to be turned into BRD Packages by
legacy-brd-writerbefore spec-writing. - BRD Source Eligibility Crosswalk and module-level review checklist.
Prepare for SME Review
- Module owner reviews overview, scope, capability seeds, and BRD crosswalk eligibility.
- Dev lead reviews
03-program-flow.md. - Data analyst or data owner reviews
04-data-flow.md. - Business or integration SMEs review only the overview/crosswalk rows that depend on business operation, channel, interface, SLA, security, or BAU claims.
- Module is approved only when overview, Program Flow, and Data Flow are at
least
approved_with_non_blocking_tbdand no blocking crosswalk gaps remain.
Finalize and stop
- After
03-program-flow.md,04-data-flow.md,module-overview.md,module-review-checklist.md, and workflow-state write-back are recorded, stop the run and report the module package path plus any manual preview follow-up. - Do not keep re-reading the module directory, repeatedly checking workflow status, or opening Mermaid previews after write-back unless a concrete validation finding names a file to fix.
- After
Workflow State Write-Back
At the end of a module-analysis run, update
<project-root>/workflow-state.yaml per
docs/workflow-state-contract.md.
Template: skills/legacy-modernization-orchestrator/references/state-writeback-snippet.md.
Stage this skill produces:
3f Module Analysis Donewhenmodule-overview.md,03-program-flow.md,04-data-flow.md, andmodule-review-checklist.mdare approved orapproved_with_non_blocking_tbd; capability seeds (CAP-*) are listed in the overview with source eligibility; and no blocking BRD crosswalk gaps remain.3e Module Analysis In Progresswhen overview, Program Flow, Data Flow, or any required coverage section is still draft or missing.
Last artifact path pattern:
04_modules/<MODULE-SLUG>/module-overview.md (with sibling view files)
Writes per run:
- Overwrite
capabilities[<CAP-* from current_focus>](or, for eachCAP-*seeded inmodule-overview.mdif the orchestrator scoped the module rather than a single capability) with stage id, overview path,last_skill: legacy-ibmi-module-analyzer, and blocking IDs (tbds,sme_pendingfor everyinferred_business_rule). - Append one
history[]entry withnotenaming the module (e.g."synthesized CREDIT-CHECK module overview, program flow, and data flow"). - Overwrite
project.last_updated_at/project.last_updated_by.
If this module yields multiple CAP-* seeds and the orchestrator scoped
the entire module (not a single capability), write one capabilities[]
entry per seed at the same stage_id: "3f Module Analysis Done". Do not
silently collapse them into one entry.
Never touch current_focus, other capabilities' entries beyond your
module's seeds, or past history[] rows.
Anti-Hallucination Rules
Code is ground truth. See ../../docs/code-as-ground-truth.md.
Business operation and system-landscape context necessarily rely on SME and
integration documentation (tier 2/3) because business "why" and architectural
intent live outside code. Preserve that context in module-overview.md and the
BRD crosswalk only when it is source-backed; do not generate standalone
Operation/System flow files by default. Any tier-2 claim that contradicts
tier-1 evidence (e.g., SME says "we no longer use path X" but code still has
the path; SME says "every transaction is logged" but the log write is
conditional in code) does not override the code. The spec records what code
does; the SME claim becomes a TBD requiring SME to confirm whether the code is
dead, drifted, or correct.
Program Flow and Data Flow are tier-1-grounded by construction (they aggregate code-derived flow / program analyses).
Do NOT invent:
- Business actors not named by SME (no inferring "the marketing team uses this" from code)
- Upstream/downstream systems not visible in any flow's Trigger Context or External Calls section
- BAU rhythm (cut-off times, peak hours) — must come from SME
- Regulatory requirements — must come from SME or referenced doc
- Manual intervention procedures — must come from SME
- Cross-module data dependencies without seeing the consuming module's inventory or SME confirmation
- Module-level replay paths, field lineage, persistence lifecycles, or exception recovery not present in approved flow/program artifacts or named SME notes
- File I/O, mutation, or SQL behavior not present in approved
file-io-inventory.yaml,field-mutation-matrix.yaml,sql-inventory.yaml, flowPERSIST-*/LINEAGE-*/EXCHAIN-*rows, or named SME notes - Business rules — only seeds (questions); the BRD writer reviews them in business language, and the spec-writer later resolves formal rule promotion with SME approval
Instead:
- If BRD crosswalk needs business context not in SME/source notes → TBD: pending_sme_judgment
- If BRD crosswalk needs integration detail not in any flow → TBD: pending_source (request integration spec) or pending_sme
- If a flow seems to belong to multiple modules → TBD: pending_sme_judgment on module boundary
- If a data object's lifecycle is incomplete → TBD: pending_sme (who archives / purges this?)
Evidence minimum:
- Every claim in overview, Program Flow, and Data Flow must trace to either source (flow / program / inventory) or to a named SME / SME note.
- "Confirmed by SME [name] on [date]" is valid evidence; "common knowledge" is not.
SME Review Questions
Module Overview / BRD Crosswalk:
- Is the module scope statement correct and bounded?
- Are capability seeds reasonable business questions rather than program-entry wrappers?
- Are business operation, channel, interface, SLA, security, or BAU claims backed by named SME/source evidence?
- Are partial or missing BRD sections carried as
TBD-*instead of being inferred from code?
Program Flow:
- All flows in scope? Any missing or extra flows?
- Can each flow be replayed from trigger to final response, persistence, rollback, or manual outcome?
- Cross-flow dependencies correct?
- Shared sub-programs correctly identified?
Data Flow:
- Data lifecycle correct for each major object?
- Are critical fields traced from source through module-level persistence and downstream outputs?
- Are skipped mutations, rollback/retry effects, and exception-state writes represented accurately?
- Coupling hotspots match operational reality (which files are "scary to change")?
- Cross-module data dependencies correctly identified?
Runtime Portability
Canonical source: skills/legacy-ibmi-module-analyzer/SKILL.md
Synced via scripts/sync-skills.sh to all four runtime adapters.
Version History
v0.2.5 (2026-06-06): Compact flow/program sidecar aggregation alignment
- Required module analysis to consume flow-analyzer v0.2.3 node artifact availability and compact child program artifacts before full Markdown
- Added module-level Flow Artifact Set tracking for
program-analysis-summary.yaml,source-index.yaml,routine-logic-details.yaml,message-inventory.yaml,file-io-inventory.yaml,field-mutation-matrix.yaml, andsql-inventory.yaml - Routed missing compact program sidecars back to
legacy-ibmi-program-analyzerinstead of allowing module synthesis to infer from concatenated documents
v0.2.4 (2026-06-04): Removed default Operation Flow and System Flow outputs. Module analysis now produces
module-overview.md,03-program-flow.md,04-data-flow.md, andmodule-review-checklist.mdby default. Business and system context remain source-backed notes / BRD crosswalk inputs in the overview, not standalone generated flow files.v0.2.3 (2026-06-03): Recast module analysis as evidence-bounded assembly and coverage mapping. Added BRD source eligibility so context-only, generated-draft, candidate-only, or unreviewed source-documented rows feed BRD questions/TBDs only, not BRD conclusions.
v0.2.2 (2026-06-02): Aligned module synthesis inputs with program-analyzer v0.2.5 routine-local evidence. View 4 and readiness checks now preserve Routine Logic Details' conditioned calculation blocks, carrier/lineage, and exception closure evidence when it explains critical field calculations, persistence, rollback/skipped work, or module-level exception-aware data risks.
v0.2.1 (2026-06-02): Aligned module synthesis with flow/program v0.2.1. Code-backed module analysis now preserves flow edge Evidence Source / Resolution, source identifier + business meaning field pairs, File I/O Purpose, Validation Logic carry-forward, and upstream Open Items / Limitations when aggregating readiness, data, exception, and BRD crosswalk outputs.
v0.2.0 (2026-06-01): Aligned module synthesis with program/flow v0.2.0. Code-backed module analysis now requires or waives replay, critical field lineage, persistence, and exception-chain coverage, and aggregates those surfaces into module-level readiness, data, and BRD crosswalk outputs.
v0.1.6 (2026-05-31): Added Mermaid preview and stop-after-writeback guardrails so large module packages do not keep processing after view files, overview, checklist, and workflow-state write-back are recorded.
v0.1.5 (2026-05-30): Added code-backed vs context-only evidence mode. A module-first context package can seed draft synthesis, but standard BRD/spec work now requires
object-map.md, program analyses, and flow analyses before module output can be treated as code-backed.v0.1.4 (2026-05-29): Aligned module-analyzer downstream wording with the BRD-first workflow and made Mermaid diagrams mandatory for each view. The standard consumer is
legacy-brd-writerbefore any spec-writing.v0.1.3 (2026-05-29): Added canonical timing guidance so upstream context package views are consumed as inputs and final module-analysis artifacts are generated only under
04_modules/<MODULE-SLUG>/.v0.1.2 (2026-05-28): BRD functional-analysis crosswalk
- Added a module-level crosswalk for SME-required BRD sections 1-9 and optional sections 10-12
- Required missing or partial BRD inputs to be carried as named
TBD-*gaps instead of being inferred downstream - Updated the positive module example and output contract so
legacy-brd-writercan consume module analysis without remapping sources
v0.1.1 (2026-05-14): Post-review hardening
- Fixed broken reference links in SKILL.md (nonexistent per-view methodology files)
- Added
blocked_pending_sourceandblocked_pending_smestatus values - Added per-view review checklists to output contract
- Strengthened evidence traceability (TBD ID and Evidence Ref columns)
- Added positive and negative smoke test prompts to runtime-smoke-tests.md
- Ready for smoke testing in Codex CLI, Claude Code, OpenCode
v0.1.0 (2026-05-14): Initial release
- 9-step workflow
- Module synthesis across operation, system, program, and data concerns
- Cross-view consistency checks
- Module-level capability seeds (for BRD writer and later spec-writer)
- Feedback loops to flow-analyzer, program-analyzer, inventory
- Examples: complete module (CARD-AUTH), incomplete module (missing flow)