Skip to content

FE-1480: Project and realize a CPS model as a Petrinaut SDCPN - #9313

Open
lunelson wants to merge 5 commits into
ln/fe-1495-typescript-contractsfrom
ln/fe-1480-resolve-decision
Open

FE-1480: Project and realize a CPS model as a Petrinaut SDCPN#9313
lunelson wants to merge 5 commits into
ln/fe-1495-typescript-contractsfrom
ln/fe-1480-resolve-decision

Conversation

@lunelson

@lunelson lunelson commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

A cyber-physical system (CPS) model can say what stochastic and dynamic Petrinaut net code must express, but it cannot choose a TypeScript implementation. This pull request records that split as an accepted decision: pure projection stops at a deterministic scaffold and typed code obligations; executable TypeScript is realized later through Petrinaut's client tools. It also records which design issues to settle next from existing baseline evidence, before runtime implementation resumes. Projection and realization code remain later work.

🔗 Related links

🚫 Blocked by

FE-1438 blocks a later production proof of executable realization, not this decision record.

🔍 What does this change?

ADR-0005 amends the three-register claim in ADR-0003 and extends ADR-0004's artifact contract without changing application/library topology. The plugin's pure project step must emit a versioned stochastic dynamically colored Petri net (SDCPN) scaffold, a sidecar of field-addressed code obligations, and a typed loss report. Generated TypeScript is derived artifact state at the application meeting point; it is not a capture, a fourth register, or a plugin operation. Steering and the specification suite are reconciled to that boundary, and the selected next work is a design-convergence queue that can run from existing transcripts and literature.

🏗️ Agent notes

Stacked as ln/fe-1494-strategic-controlsln/fe-1495-typescript-contractsthis branch.

Commits

  • db3bf21054 Define SDCPN artifact realization boundary
  • d3feeaa596 Reconcile the projection obligation ledger
  • e070ee89f9 Select the Brunch design convergence queue
  • 44a5e1df95 Encode the design convergence prerequisites

ADR-0005 outputs of project(elicitedModel)

  1. Versioned SDCPN scaffold: deterministic structure plus readable comments in code fields that still need implementation.
  2. Typed code obligations keyed by element and field: semantic intent, available places/token fields/parameters, supporting capture ids, acceptance checks.
  3. Typed per-capture loss report.

Comments are readable context only. Realization must consume the sidecar. FE-1438 remains the hard blocker for the executable production proof because client tools must return field-addressed compiler diagnostics. Scaffold and obligation design do not require that round trip.

Selected design-convergence order

Recorded in docs/control/STEERING.md and STRATEGY-LOG.md. Linear owns the three hard prerequisite joins: FE-1407 blocks FE-1404, FE-1404 blocks FE-1406, and FE-1406 blocks FE-1431. Remaining arrows are strategic order, not additional Linear blockers.

design resolution
FE-1407 failure catalogue -> FE-1402 completion/stopping contract
-> FE-1403 CPS guidance -> FE-1404 condition-3 run
-> FE-1406 strategy quiver -> FE-1431 plugin-authoring/absence-locator closure

reviewer-path implementation
FE-1420 retry/abandonment safety -> FE-1438 client-tool return -> FE-1439 durable session

semantic implementation
FE-1393 exercised plugin SDK -> FE-1482 CPS plugin -> FE-1478 provenance read
-> FE-1480 scaffold/realization -> FE-1479 targeted correction join

Resolving the authority boundary does not select FE-1480 implementation as the next build. During design convergence, do not implement SDK, client tools, projection, provider routing, or deployment.

Spec and glossary

CONTEXT.md adds artifact boundary, code obligation, and artifact realization. Specs under docs/specs/ and SPEC-LEDGER.md distinguish deterministic scaffold/obligation output from pending projection and realization work.

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing

Documentation and glossary only.

📜 Does this require a change to the docs?

The changes in this PR:

  • require changes to docs which are made as part of this PR

ADR-0005, steering, specs, ledger, index, and glossary. No Petrinaut user-guide pages.

🕸️ Does this require a change to the Turbo Graph?

The changes in this PR:

  • do not affect the execution graph

⚠️ Known issues

This branch does not implement project, obligation fulfillment, or Petrinaut compilation. FE-1438 still blocks an executable production proof of realization. Implementation priority versus the under-built elicitor remains a steering choice, not a consequence of landing this decision.

🐾 Next steps

🛡 What tests cover this?

No new executable tests. Existing architecture documentation-index coverage should still pass after the INDEX.md and ADR additions. Review is the check for ADR-0005, steering, and spec consistency.

❓ How to test this?

  1. Read libs/@hashintel/brunch-agent/docs/adr/0005-model-assisted-sdcpn-realization.md and confirm it matches the FE-1480 issue's accepted boundary.

  2. Read libs/@hashintel/brunch-agent/docs/control/STEERING.md and confirm design convergence is the selected next work, with FE-1480 realization later.

  3. Run:

    turbo run test:unit --filter @hashintel/brunch-agent

📹 Demo

Not applicable — decision and steering records only.

@github-actions github-actions Bot added area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team labels Aug 24, 2026
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview Aug 25, 2026 1:01pm
petrinaut Ready Ready Preview Aug 25, 2026 1:01pm
petrinaut-docs Ready Ready Preview Aug 25, 2026 1:01pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Aug 25, 2026 1:01pm

@lunelson lunelson changed the title Define SDCPN artifact realization boundary FE-1480: Project and realize a CPS model as a Petrinaut SDCPN Aug 24, 2026
@lunelson
lunelson marked this pull request as ready for review August 24, 2026 16:20
@lunelson
lunelson marked this pull request as draft August 24, 2026 16:20
@cursor

cursor Bot commented Aug 24, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation and steering only; no executable behavior, auth, or data-path changes.

Overview
Records ADR-0005 for FE-1480: pure project stops at a deterministic SDCPN scaffold, typed code-obligation sidecar, and loss report; executable TypeScript is artifact realization at the application layer (Petrinaut client tools, compile/sim gates), not a capture, fourth IR register, or plugin operation.

ADR-0003 and ADR-0004 are cross-linked without topology change; the elicitation-kernel, IR, and plugin-contract specs, CONTEXT glossary, INDEX, and SPEC-LEDGER are aligned to that split.

STEERING and STRATEGY-LOG (S-004–S-006) reprioritize a design-convergence queue (FE-1407FE-1402/1403 → FE-1404FE-1406FE-1431) ahead of SDK, projection, and FE-1480 realization; FE-1438 remains the gate for executable realization proof.

Agent protocols in legibility and steering add independent review-before-commit and ordered-frontier dispatch rules. No runtime or projection implementation in this PR.

Reviewed by Cursor Bugbot for commit ec6cdec. Bugbot is set up for automated code reviews on this repo. Configure here.

@lunelson

Copy link
Copy Markdown
Contributor Author

Status note (2026-08-25): the design-convergence queue and the three hard prerequisite joins described in the agent notes here (FE-1407FE-1404FE-1406FE-1431) were superseded by strategy entry S-007 and ADR-0006 in #9322, further up this stack. The blockers were removed in Linear; the record above is kept as authored.

lunelson and others added 3 commits August 25, 2026 14:51
Record deterministic scaffolds and typed code obligations as the pure projection output, with executable TypeScript realized downstream through Petrinaut client tools.

Reconcile Brunch steering, specs, glossary, and ADR history while leaving FE-1480 implementation priority open.

Amp-Thread-ID: https://ampcode.com/threads/T-01a03444-b6bb-77de-b8ff-52509ae2d746
Co-authored-by: Amp <amp@ampcode.com>
Record ADR-0005's deterministic scaffold and code-obligation boundary while keeping projection and artifact realization honestly pending.

Amp-Thread-ID: https://ampcode.com/threads/T-01a03444-b6bb-77de-b8ff-52509ae2d746
Co-authored-by: Amp <amp@ampcode.com>
Prioritize an evidence-backed non-HITL issue sequence before runtime implementation, then order the reviewer and semantic build paths.

Record the proof bundle, build-readiness gates, and corrected Gherkin-before-CPS sequencing.

Amp-Thread-ID: https://ampcode.com/threads/T-01a03444-b6bb-77de-b8ff-52509ae2d746
Co-authored-by: Amp <amp@ampcode.com>
lunelson and others added 2 commits August 25, 2026 14:51
Record the approved Linear blocker joins and distinguish FE-1431 design closure from later plugin ratification.

Keep the remaining issue order strategic rather than turning the whole queue into a dependency graph.

Amp-Thread-ID: https://ampcode.com/threads/T-01a03444-b6bb-77de-b8ff-52509ae2d746
Co-authored-by: Amp <amp@ampcode.com>
Treat ordered proof frontiers as epistemic strategies whose results reshape successor briefs.

Require a fixed pre-commit review packet, independent legibility review, closed findings, and renewed review after remediation before the orchestrator authorizes commit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

1 participant