Demo plan — week of 2026-08-17
Authority: plan — its scheduled week has passed. This page records the scope decisions for the August 2026 demo, whose week (2026-08-17) is now behind us; whether the demo took place is not recorded here. Read it as the reasoning behind those decisions rather than as current instruction, and check any capability claim against the capability matrix, which has moved on since. It does not override the matrix or any canonical page in the documentation map.
The demo goal: show a safety case being extended from the user's own AI client over MCP — SCCG-guided, bilingual English/Japanese, with every change landing as a reviewable draft a human promotes, and ACPs with a confidence argument on the resulting structure.
The scope below is grounded in a full survey of the MCP, SCCG, GSN/ACP and i18n/review subsystems (2026-08-12). The load-bearing finding: most of what the demo needs already exists — the week is mostly reliability, exposure and verification work, not construction.
The demo storyline
- Open a project in Assurance Forge; connect Claude (or another MCP client) using the in-app "Copy MCP client config".
- Ask the client to draft a new argumentation branch for a chosen topic, in
English and Japanese, using the
add_argumentationprompt (which carries SCCG guideline text) andsuggest_placementfor the anchor. - Watch the draft groups appear on the canvas with source badges, staged — not applied — with SCCG and GSN well-formedness findings attached.
- Run SCCG AI review over the combined working draft (accepted baseline + MCP groups seen as one graph).
- Promote selected groups in the GUI. The machine-translated Japanese text is flagged by the translation-review gate; a reviewer reads it and accepts it as a separate, explicit act.
- Show ACPs on the promoted structure and the linked confidence argument; export the diagram to SVG.
What already exists and must not be rebuilt
- Bilingual model content, end to end (AF-ENG-012,
supported): SACMMultiLangStringinlibs/sacm, the name-overflow tag convention, bilingual editing in the inspector, the secondary-language canvas labels. - Bilingual MCP operations (AF-AI-019,
prototype): everyCreate*/Update*patch operation carries atranslationsmap; creates refuse translation-only text; updates may be translation-only; reads report translated languages andfind_elementsmatches Japanese text. - The reviewer gate for translations:
core::drafts::MachineTranslatedElementIdsflags non-human secondary-language text at promotion; the pending set persists inanalysis/translation-review.af.json, surfaces as aTranslationReviewNeededwarning, and is cleared only by an explicit Accept in the inspector or Review panel. The user-facing requirement "the translation must be accepted by a reviewer" is built and tested — what it lacks is end-to-end verification from a real client (below). - SCCG in MCP: the
sccg://guidelinesresource, guideline text inlined in three authoring prompts, and mechanical staged checks (EV.1, AR.2, AR.1, CL.5) attached to every staging result. - ACP (AF-ACP-001..005, 008,
supported): relationship and artefact-element ACPs, the ACP panel, confidence argument trees, canvas and SVG badges. - Draft workspace phases 0–4 (#273): one working draft per argument, MCP draft-group protocol, SCCG review over the working model, human-only promotion.
P0 — blocks the demo
- MCP session lifecycle recovery. The session decides connected/offline
once, at process start (
src/mcp/session.cpp), and a lost bridge connection is permanent — if the app starts second, restarts, or switches project, every call fails until the user restarts their AI client. For a live demo this is the highest-probability failure. Work: reconnect on demand (re-run discovery + handshake on failure), report the current mode, and makeneeds_applicationerrors actionable. This is the concrete core of "make MCP work properly". - Run the #273 release gate against the running application. Build a
branch over several calls from a real client, confirm canvas updates, run
SCCG review over the combination, promote selectively, restart and
recover. This single pass discharges most of #283 and is what can move
AF-AI-014..019 rows from
prototype. The bilingual storyline is exercised as part of it (AF-AI-019's own gap is exactly "not yet driven end-to-end from a real MCP client"). - Measure materialization cost on a large argument (#283, phase-2 item). Materialization reruns on every workspace change and feeds the canvas; if the cache is insufficient the demo stalls on every staged operation. Measure first; optimize only if the number says so.
P1 — demo-visible fixes
- SCCG surface polish in MCP:
- The dist-path loader leaves catalog title/purpose empty, so the
sccg://guidelinesresource opens with an empty heading (src/mcp/guidance.cpp,src/parser/sccg_dist_parser.cpp). translate_caseis the one prompt carrying no SCCG guideline text — it should at least carry CL.5 (qualifier preservation) and the terminology guidance it already alludes to.sccg://guideline/<id>is readable but unlisted and undiscoverable.assurance-forge-mcpfinds the SCCG data only because it shares a build directory with the GUI (af_copy_sccg_datais never applied to it).- The stdio smoke test never exercises
resources/readorprompts/get, which is exactly the surface above.
- The dist-path loader leaves catalog title/purpose empty, so the
- ACP over MCP, read-side. Today MCP exposes a bare ACP count. Expose the
existing
core::AcpRecorddata: ACPs inget_elementresponses and a read tool for the case's ACPs with their targets and confidence links. Write-side ACP operations are deferred: extending the patch-operation vocabulary is a decision with its own GSN review (ADR 0009), not demo-week work. - Secondary-language text in SVG export. The canvas renders Japanese labels; the SVG exporter has no secondary-language text at all, so exporting the bilingual demo case silently drops the Japanese. The two renderers are separate by design — this is the known "landed twice or not landed" hazard.
P2 — GSN expansion, if the week allows
- AF-ACP-009: module-qualified ACP identifier (
ACP1[Confidence]), normative in GSN v3 §1:5.2.3. Small, visible, closes a matrix row. - AF-PAT-009: author/clear the Uninstantiated decorator. Import, rendering and export already work; only the authoring command is missing.
Explicitly out of demo scope
- Modular GSN (away elements, modules, contracts — AF-MOD-001..014):
fourteen
plannedrows, zero code, and away elements currently render as an untyped node. Not a week's work; unchanged on the roadmap as Next/Later. - Creating a new ArgumentPackage from MCP. "Add a new argumentation section" in the demo means a new branch under an existing anchor, which the vocabulary supports bilingually today. A first-class create-package operation needs a new patch-operation type, a core add path and adapter work — tracked as follow-up, not demo work.
MoveUnder, standards-clause traceability — already tracked in #261.- Defeated-on-Strategy/Solution/Context and ACP-on-Claim carriers — structurally unrepresentable in SACM 2.3 (gaps rows 3 and 7); moves at standards pace, not demo pace.
- Multiplicity / optionality decorators — no SACM feature exists to carry them.
- Japanese SCCG guideline content. The catalog schema has no language field and the corpus is English by construction; guideline bodies reaching users in Japanese is an upstream SCCG project decision, not an app change.
Sequencing
| When | What |
|---|---|
| Days 1–2 | P0-1 session recovery, with process-level tests; P1 SCCG polish rides along in the same layer |
| Day 2 | P0-3 materialization measurement on a large case (early, so a bad number can change the week) |
| Days 3–4 | P1 ACP read exposure; P1 SVG secondary language; P2 items only if green |
| Day 4 | P0-2 release-gate run against the running app, bilingual storyline included, findings filed same day |
| Day 5 | Fix what the gate run surfaced; full demo rehearsal; freeze |
The gate run is deliberately not last: it is the step most likely to surface real defects, and it needs a repair day behind it.