No description
  • Racket 45.3%
  • Python 34.9%
  • Nix 19.8%
Find a file
kp2pml30 c656b5a89e
chore(deps): bump yamd to xref-scoping rev ⬆️
yap now uses #xref-scope / #defalias / #def #:at-root?, added in yamd
f593ac8; the old pin (9e34753) lacks them.
2026-07-15 16:14:35 +09:00
docs/contributing chore: initial commit 2026-07-15 01:37:26 +09:00
support fix(yap): register requirement keywords at the document root 🐛 2026-07-15 01:50:17 +09:00
yap feat(yap-005): scope the UI vocabulary to the document ✨ 2026-07-15 01:50:18 +09:00
.dockerignore chore: initial commit 2026-07-15 01:37:26 +09:00
.editorconfig chore: initial commit 2026-07-15 01:37:26 +09:00
.gitattributes chore: initial commit 2026-07-15 01:37:26 +09:00
.gitignore chore: initial commit 2026-07-15 01:37:26 +09:00
flake.lock chore(deps): bump yamd to xref-scoping rev ⬆️ 2026-07-15 16:14:35 +09:00
flake.nix chore: initial commit 2026-07-15 01:37:26 +09:00
LICENSE chore: initial commit 2026-07-15 01:37:26 +09:00
README.md chore: initial commit 2026-07-15 01:37:26 +09:00

Yap

Yet Another Proposals — short documents that freeze cross-project intents (conventions, defaults, preferences) in YAMD.

License: GPL-3.0

Background

Ideas worth carrying between projects — "use TOML for human config", "log this way", "write titles in Title Case" — otherwise live only in my head and drift. A YAP is a PEP/RFC-style note that pins one such intent to a number, so it can be referenced and reused. The number freezes the intent; the prose behind it may be revised freely afterwards. See yap/yap-002.yamd for the format itself.

Install

Requires Nix with flakes. The yamd renderer is pulled in as a flake input and wrapped so the project-local yap plugin resolves:

nix develop        # yamd on PATH, git hooks installed

Usage

Layout:

yap/
	000-template.yamd   ← copy this to start a new YAP
	NNN-slug.yamd       ← a numbered proposal (addressed as yap-NNN in prose)
	_index.yamd         ← toctree + glossary over the whole set
drafts/
	_next-number.txt    ← counter for independent, not-yet-numbered drafts
support/yamd-lib/yap/  ← the `yap` YAMD plugin (header + version + keywords + #ref-yap)

Start a new YAP by copying the template and giving it the next free number:

cp yap/000-template.yamd yap/006-my-idea.yamd

Render one to HTML:

nix run . -- yap/002-yap-format.yamd -o out.html

Or build the whole set — single inlines every YAP into one page, multi writes one page per document:

nix run . -- yap/_index.yamd -o out.html            # combined
nix run . -- --mode multi yap/_index.yamd -o site/  # one page per YAP

Format all YAP sources in place (also run as a pre-commit hook):

nix run . -- --fmt yap/*.yamd

Contributing

I am the only author. Commit and workflow notes: docs/contributing/README.md.

License

GPL-3.0 © 2026 kp2pml30