Devostasis 0.1.3
Devostasis declares its own plan and debt, so its report about itself stops saying UNDECLARED and UNINSTRUMENTED and starts saying something a consumer can act on. No rule, threshold, window or gauge changed.
.devostasis/targets.jsonand.devostasis/debt.json: this repository's planning targets and registered maintenance obligations, maintained by hand and mirroring the phases in ROADMAP.md. They are also the worked example an adopter copies, replacing the fictional paths the specification used until now.- Self-observation reads them: the caller passes planning-source file, both register paths and a debt mapping_version, so the workflow and the fleet observation see the same metadata and cannot disagree.
- CONTRIBUTING documents the
Target: <id>line that links a pull request to a target, the rule that a due date is written only when it is real, and the boundary between a target and a debt item. - The deployment guide names this repository as the worked example and states that registers are read from the default branch, so a register on a working branch is REGISTER_NOT_FOUND until it merges.
- Every documented pin names v0.1.3, including the reusable workflow's default install ref, and tests/test_release_pins.py fails the build when a pin, the package version or the changelog section falls behind.
- tests/test_own_registers.py turns a typo in either register into a red build instead of three Vitals quietly going UNKNOWN.
Measured against the real register content rather than assumed: Horizon becomes DECLARED with ten open targets, Debt becomes PRESENT with five open items and none stale, and Direction follows the markers on active pull requests. Horizon stops at DECLARED rather than VISIBLE because no target carries a due date, and none does because none of the dates would be real.
This is the first real-repository evidence for planning.source = file and debt.source = file; until now both contracts existed only in synthetic fixtures. A project's history is INCOMPARABLE once when its configuration adopts the registers, because the semantic configuration changed.
Usage: uses: drevendev/devostasis/.github/workflows/observe-self.yml@v0.1.3 (see docs/deployment.md).
Generated with Claude Code.