#dev-proc examples
Units from chirp's own history. Their STATE.md files were deleted when they closed, and the commits linked here carry them. dev-proc dig <unit id> prints them again from a clone.
#A slice from start to finish: ordered-map
The slice that added omap, an insertion-ordered map, and ordered decoding to json and yaml.
d3df7ffinitialize: the slice is created with its purpose, scope and success criteria.88cc220execute: the gate to execute passes, because the slice has an owner and criteria that can be checked.ca05395: the code, its smoke checks and the docs land together, andSTATE.mdchanges in the same commit.a21fb7bfinalize: CI is green, so the harvest is recorded and the unit's files are deleted in the same commit. It left three decisions, a learning and four backlog items.
The decisions are still in the repo, for example D-PYFZFKJPCW3QPOTB, on why an omap is an opaque type. The learning L-NYRT2RGVVAXTFIOF records something the slice found out the hard way.
#Cutting scope instead of letting a unit sprawl: cli-stdin
The cli-stdin slice set out to make chirp - and piped stdin run as a script. Part-way through, -h/--help turned out to be a separate job.
13909ceinitialize.5cd3367:-h/--helpmoves out of scope into a backlog item. The slice's criteria shrink to match.5add4adanda51473d: the narrower slice ships and closes.db8cc62,ee6e9f5and36f461b: a day later the backlog item becomes the task cli-help, which goes through its own life and closes.
#A learning that pays off in the next unit: pcre2, then md4c
Bundling PCRE2 broke the final link with duplicate symbol. Every native module is linked into the one binary, and a function named cfun_version already existed in another one.
f86f39cexecute: the pcre2 binding, with its function names prefixed.76266c9finalize: the decision D-LGEWD4XRBUFOEIDS and the learning L-BVXC557ZOWPP4SN5 are recorded.1d4ad8c: the next native, md4c, starts from that learning. Its binding's functions are prefixed, and md4c's own global symbols are renamed at build time, before a link has had the chance to fail.
#Backlog to slice, with a prerequisite split out: this site
- The site began as backlog item B-NEQ4LIZJMAZOYQLA.
dev-proc new slice gh-pages-site --from B-…turned it into a slice, and its notes moved intoSTATE.md. - While initializing, it became clear that chirp could not render Markdown to HTML. Rather than writing a private renderer inside the site, a separate slice bundled md4c first, in
1d4ad8c. That one commit carries aWork:trailer for each of the two slices. - Round-trip Markdown editing stayed in the backlog, now with notes on how md4c could support it.
#Porting the process to chirp: dev-proc-chirp
dev-proc was first written in Node and ported to Janet so the repo's own workflow needs nothing but chirp.