Skip to content

Commit 2bb2fbb

Browse files
Merge pull request #667 from JPL-Devin/devin/update-skills-1787972224
* Update the sysml REPL testing skill with content-only-rewrite verification notes Co-authored-by: jason.han <jason.han@jpl.nasa.gov> * docs(skills): compare the whole run against the branch point Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
2 parents 30b46fd + cf70dce commit 2bb2fbb

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

  • .agents/skills/testing-sysml-repl

.agents/skills/testing-sysml-repl/SKILL.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5366,3 +5366,39 @@ Two REPL pitfalls specific to this kind of session:
53665366
`unresolved reference: Pkg::TrafficLight` (and then `no active state machine session` for
53675367
every follow-up). Declare the `state` at the top level of the loaded file — that is also
53685368
how the guide's samples are written.
5369+
5370+
## Content-only demo rewrites: separating a regression from a pre-existing limit
5371+
5372+
When a PR only rewrites `examples/*.sysml` notation (`then done;` for a standalone `done;`,
5373+
`entry`/`do`/`exit <action>`, `accept when <event>`, `assert constraint`, view-usage
5374+
reordering) the binary is unchanged, so any difference must come from the file. Isolate it
5375+
by running the *old* copy of the same file through the *same* binary:
5376+
5377+
```bash
5378+
# the branch point, not whatever origin/main has moved to since
5379+
git show "$(git merge-base HEAD origin/main)":examples/<file>.sysml > /tmp/old.sysml
5380+
printf '%%state Pkg::Machine\n%%quit\n' | ./bin/sysml /tmp/old.sysml > /tmp/old.out 2>&1
5381+
printf '%%state Pkg::Machine\n%%quit\n' | ./bin/sysml examples/<file>.sysml > /tmp/new.out 2>&1
5382+
diff -u /tmp/old.out /tmp/new.out
5383+
```
5384+
5385+
Compare the whole run, not its last few lines: a difference earlier in the output (a warning,
5386+
a diagnostic, a different starting state) is exactly the regression you are looking for. An
5387+
empty `diff` means the behavior is pre-existing and not the PR's doing — report it as a
5388+
walkthrough/claim gap rather than a regression.
5389+
5390+
Known shape worth expecting: `examples/phase-c-behavioral-bodies.sysml` used to validate
5391+
clean while none of its state machines (`PhaseC::Running`, `ConnectionStateMachine`,
5392+
`VehicleOperating`, `AutopilotMode`) could be started — `%state` answered `failed to create
5393+
executor: initialize state machine: no initial state found`, because those states declared
5394+
substates with no transition out of the entry action naming the one to start in. A guard over
5395+
an attribute with no value fails the same startup a step later (`eval guard of transition
5396+
Active -> Paused: unresolved reference: lowBattery`). Both are fixed in that file now, but a
5397+
demo whose walkthrough was written against a machine that never started is a shape to expect:
5398+
check the old copy before calling such a failure a regression.
5399+
5400+
The committed walkthroughs to diff a demo run against are
5401+
`examples/VIEWS-DEMO.md`, `examples/SOLVER-DEMO.md`,
5402+
`examples/disposal-robot-demo/README.md` and — for `action-executor-demo.sysml`, whose own
5403+
`examples/ACTION-EXECUTOR-DEMO.md` is only a pointer — `docs/guide/06-behavior.md`
5404+
("Token-flow patterns").

0 commit comments

Comments
 (0)