Skip to content

Document zero-argument contract signatures#49

Merged
yavorpanayotov merged 3 commits into
mainfrom
docs/zero-arg-contract-signatures
Jun 19, 2026
Merged

Document zero-argument contract signatures#49
yavorpanayotov merged 3 commits into
mainfrom
docs/zero-arg-contract-signatures

Conversation

@yavorpanayotov

Copy link
Copy Markdown
Collaborator

What

Documents that contract operations can take an empty parameter list — name: () -> ReturnType — in the skill's language reference (contracts section).

contract Registry {
    list_things: () -> Set<Foo>
    health: () -> Status
}

Why

Parameterless operations (list-all, fetch global state, health checks) are common at integration boundaries. This keeps the plugin's reference (which Claude reads when writing specs) in sync with the v3 language reference and the parser fix.

Related

Note: the fix lands in the allium CLI on its next release; the bare-arrow form -> ReturnType remains invalid by design.

🤖 Generated with Claude Code

yavorpanayotov and others added 3 commits June 19, 2026 14:12
Add an lspServers entry so the Claude Code plugin connects the
allium-lsp language server to .allium files, giving Claude checker
diagnostics, go-to-definition and hover immediately after each edit
without a separate `allium check` invocation.

Note in the README that allium-lsp is not bundled and must be
installed separately (and be on PATH), consistent with official
marketplace LSP plugins.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The language server calls createConnection(ProposedFeatures.all), which
requires a transport flag on argv, so it must be launched as
`allium-lsp --stdio` (per allium-tools CONTRIBUTING). Add args: ["--stdio"]
to the lspServers entry; without it the server errors on startup.

allium-lsp is not published to npm (the bare and @juxt-scoped names both
404), so drop the `npm install -g allium-lsp` instruction and point to the
allium-tools repo for installing the server onto PATH instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Note that contract operations can take an empty parameter list,
`name: () -> ReturnType`, for parameterless operations (list-all, fetch
global state, health checks). Mirrors the v3 language reference in
allium-tools and matches the parser fix in juxt/allium-tools#55.

Refs #37

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@yavorpanayotov yavorpanayotov merged commit 4f125d5 into main Jun 19, 2026
1 check passed
@yavorpanayotov yavorpanayotov deleted the docs/zero-arg-contract-signatures branch June 19, 2026 13:13
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.

Contract signatures cannot express zero-argument operations

1 participant