Skip to content

feat!: syntax overhaul before 1.0 release#47

Merged
sleipi merged 1 commit into
mainfrom
claude/1-0-milestone-open-topics-pJeuL
May 25, 2026
Merged

feat!: syntax overhaul before 1.0 release#47
sleipi merged 1 commit into
mainfrom
claude/1-0-milestone-open-topics-pJeuL

Conversation

@sleipi
Copy link
Copy Markdown
Owner

@sleipi sleipi commented May 24, 2026

Syntax Overhaul before 1.0

Breaking syntax changes implemented ahead of the 1.0 release. Acceptable since we are pre-1.0.

Changes

# Change Breaking?
1 #-lines in implicit body are comments, not expected output Yes, minor
2 Section headers lowercase: [asserts], [captures], [finally], [prompts] Yes
3 Move later to front of assert line: later stdout contains "done" Yes
4 Capture syntax uses = instead of : (id = stdout) Yes
5 Bare-value semantics formalized (quotes optional, spaces included) Potentially
6 Remove [Options] section from SPEC (never implemented) No (docs)

Old uppercase section headers and old : capture syntax produce parse errors with clear migration hints.

Migration examples

-[Asserts]
+[asserts]

-stdout contains later "done"
+later stdout contains "done"

-[Captures]
-token: stdout
+[captures]
+token = stdout

Closes #40

@sleipi sleipi linked an issue May 24, 2026 that may be closed by this pull request
@sleipi sleipi force-pushed the claude/1-0-milestone-open-topics-pJeuL branch from ae9d07f to 44d759b Compare May 24, 2026 17:47
BREAKING CHANGE: multiple syntax changes ahead of the 1.0 release.

- #-lines in implicit body are comments, not expected output
  (use [asserts] with `line N startsWith "#"` to test # in stdout)
- Section headers must be lowercase: [asserts], [captures], [prompts], [finally]
  (old uppercase form produces a parse error with migration hint)
- `later` modifier moves to front of assert line: `later stdout contains "done"`
- Capture syntax uses = instead of : (`id = stdout`)
- Bare-value semantics formalized: everything after the predicate is the value,
  quotes optional
- Remove dead `extractPredicateWithLater` function (lint fix)
- Remove [Options] section from SPEC (never implemented)

Closes #40
@sleipi sleipi force-pushed the claude/1-0-milestone-open-topics-pJeuL branch from 44d759b to b8f639f Compare May 24, 2026 17:54
@sleipi sleipi changed the title syntax: #-lines in implicit body are comments, not expected output feat!: syntax overhaul before 1.0 release May 24, 2026
@sleipi sleipi added the enhancement New feature or request label May 25, 2026
@sleipi sleipi merged commit ee55ff1 into main May 25, 2026
4 checks passed
@sleipi sleipi deleted the claude/1-0-milestone-open-topics-pJeuL branch May 25, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Syntax overhaul before 1.0 release

1 participant