Claude-skill-registry locque-authoring
Author or update Locque .lq code and tests with the canonical M-expr syntax, CBPV rules, data/match forms, modules/imports/opens, and project conventions.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/locque-authoring" ~/.claude/skills/majiayu000-claude-skill-registry-locque-authoring && rm -rf "$T"
manifest:
skills/data/locque-authoring/SKILL.mdsource content
Locque authoring
Use this skill when writing or editing Locque source or tests.
Sources of truth
defines the canonical syntax and S-expr mapping.grammar.md
lists project conventions and tooling.AGENTS.md
Workflow
- Prefer
M-expr files; do not handwrite.lq
..lqs - Keep paths lowercase. Every
file must have a matchinglib/**
file.test/** - Use
qualification;Module::name
is explicit only.open Alias exposing ... end - Effects are explicit: computations are values via
, run viacompute ... end
.perform - Multiline constructs must end with
(end
,function
,compute
,bind
,match
,data
,typeclass
,instance
,module
,open
,pack
).unpack - Data:
with constructorsdefine ... as data ... in TypeN ... end
; match usesType::Ctor
.case Type::Ctor - No implicit coercions; use
,of-type
,lift
,up
,down
,pack
as needed.unpack - Use
instead ofignored
for unused binders._ - List literals are canonical:
and[]
(commas required). Empty lists require[a, b]
when no expected list type is in scope.of-type [] (List A)
Test conventions
- Use
with an explicit type argument.assert::assert-eq - Run
after changes.smyth test
Templates
Function:
# Assumes: import arithmetic as Ar define transparent inc as function x Natural returns Natural value Ar::add x 1 end
Data:
define transparent Option as data A Type0 in Type0 case Option::none of-type Option A case Option::some of-type for-all x as A to Option A end