Skip to content

Teach port and smoke proof in the pstack workflow skills - #747

Open
julerex wants to merge 1 commit into
cursor:mainfrom
julerex:cursor/pstack-port-proof
Open

julerex wants to merge 1 commit into
cursor:mainfrom
julerex:cursor/pstack-port-proof

Conversation

@julerex

@julerex julerex commented Oct 21, 2026 •

Copy link
Copy Markdown

Summary

  • Guest smokes, delegate summaries, and a green host check were being treated as the same proof. The workflow skills now require the serial log, and they require the cross-target protection-domain check before the work is called done.
  • Combined devices keep their own interrupt and scheduling tables. A context-switch port matches the recorded upstream layout. Edits that only served a discarded premise come out before the next smoke.
  • Exploration reconciles generator claims against the function that writes the artifact, and a long run keeps its decision trail unless the operator waives it.

Test plan

  • Read the edited skill sections and confirm each addition is one sentence a later agent can apply on a different port.
  • Confirm no product code, versions, or board-specific constants were added.

Made with Cursor


Note

Low Risk
Documentation-only updates to agent SKILL.md playbooks; no runtime or product code paths change.

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

Guest logs, cross-target checks, and composite device tables were treated as delegate summaries. These edits make the next port read the artifact and keep failed premises out of the tree.

Co-authored-by: Cursor <cursoragent@cursor.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 4d878d5. Configure here.

- **Smallest safe decomposition.** If one worker is best, name why.
4. Delegate code-writing to a subagent using your configured feature model (default `grok-4.7-xhigh-fast`) with a specific scope (file paths, named data shape and its organizing structure per **principle-model-the-domain**, a state machine over scattered booleans, a table/registry over branching, a typed model over repeated shape assumptions, chosen before the delegate writes logic, and success criteria). Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section. When the implementation admits multiple valid shapes (error handling, abstraction layer, test structure), delegate via the **arena** skill instead so the runners surface the alternatives and the cross-judge guards the pick. Mandatory: no skip-with-reason escape, and Laziness Protocol does not override it (the gain is review separation, not lines saved). A subagent forbidden to spawn satisfies this by owning the diff directly with the same review separation. No "standing by" reply that waits on a nested agent. Comments per **Comments**. Surgical edits, re-ground against the source for upstream-derived files. Port shared-primitive improvements to all consumers and verify each. Commit liberally.
5. Verify on the matching surface. "Inconclusive" or wrong-surface is not a pass. Flag it.
5. Verify on the matching surface. "Inconclusive" or wrong-surface is not a pass. Flag it. After any delegate or smoke, read the serial log or equivalent capture for the expected strings before advancing the checkpoint. Do not mark the work done, push it, or update a plan status until the host check and the cross-target protection-domain check both exit zero on the same tree.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feature gate blocks non-port work

High Severity · Logic Bug

Feature step 5 now withholds done, push, and plan updates until the host check and the cross-target protection-domain check both exit zero, with no port qualifier. The same change scopes that gate in principle-prove-it-works to a firmware or multi-architecture port. Owners copy this step verbatim, and most Feature trees have no such check, so the step cannot close.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4d878d5. Configure here.

## 3. Synthesize (complex only)

Once all explorers have returned, spawn one explainer with `references/explainer-prompt.md` and every explorer's findings filled in.
Once all explorers have returned, harvest each explorer's final report into one scratch file by path, then point the explainer at that file only. Reconcile each explorer claim against a traced call path, the generator entry versus config-only strings, before synthesis. Spawn one explainer with `references/explainer-prompt.md` and that scratch file filled in.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explainer template ignores scratch file

Medium Severity · Logic Bug

Complex how now harvests explorer reports into one scratch file and points the explainer at that file only, but explainer-prompt.md still substitutes {EXPLORER_FINDINGS_ALL} with inlined findings and never tells the explainer to open a path. Following both drops the reports or hands the explainer a path it was not told to read.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4d878d5. Configure here.

Every candidate gets the same prompt, so the prompt is the contract.

1. State the artifact each candidate is producing.
1. State the artifact each candidate is producing. Write the shared grounding before the runners start. Name which features split host or generator tables from the default build the other consumers compile. State the invariants that are already true in the tree, including what the generator emits today and which metadata is stale.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arena framing requires generator tables

Medium Severity · Logic Bug

Arena Phase A now requires every bakeoff to name features that split host or generator tables from the default build and to state what the generator emits today, including stale metadata. Arena frames design and code contests of any kind, so that contract ships a firmware-shaped prompt on trees that have no generator.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4d878d5. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant