Documents
skill-improvement
skill-improvement
Type
External
Status
Published
Created
Jun 13, 2026
Updated
Jun 13, 2026
Source
View

Skill Improvement Mandate — dakota-iso#

Every agent session produces two outputs:

  1. The work — the PR, fix, or improvement
  2. The learning — what a future agent should know

Output 1 without Output 2 leaves the factory no smarter. The loop only compounds if agents write back.


Before You Mark Work Complete#

  • Did I discover any workaround, non-obvious pattern, or convention?
  • Is there a skill file for the area I worked in?
  • If yes — did I update it?
  • If no — did I create one in docs/skills/?
  • Is the skill file committed in this same PR? (Not a follow-up. Same PR.)

What Counts as a Learning Worth Writing Back#

Write it:

CategoryExample
Upstream bug workaround"installer_channel=dev regressed fisherman overlay storage — use stable until tuna-os/fisherman#38 resolves"
Non-obvious correctness requirement"Use buildah commit --squash not podman create --entrypoint /bin/sh && podman commit — the latter corrupts Entrypoint and breaks bootc install"
Convention not obvious from code"skopeo copy must run inside the installer container, not the build host — otherwise tar-split metadata format mismatches"
Trial-and-error discovery"dmsquash-live requires CDLABEL=DAKOTA_LIVE exactly — changing the label breaks live boot without any helpful error message"
CI/environment quirk"BTRFS hosts: even with squash-to-1-layer, VFS import is slow — use XFS loopback for local builds"

Do NOT write:

CategoryExample
One-off task note"Use commit message fix(iso): revert squash logic for this PR"
Obvious developer knowledge"Run git status to see changed files"
Ephemeral state"R2 uploads are currently paused due to credential rotation"

Where to Write It#

Working in...Write to
ISO build system, justfile, squashfsdocs/build.md
Architecture, boot flow, VFS storagedocs/architecture.md
CI workflows, R2 uploads, smoke testsdocs/ci.md
LUKS testing, fisherman, QEMUdocs/luks-testing.md
R2 promotion, named releasesdocs/r2-promotion.md
Variants, payload_ref patterndocs/variants.md
Issue lifecycle, labels, PR policydocs/skills/label-workflow.md
Human gates, evidence requirementsdocs/skills/human-gates.md
Onboarding, dev environmentdocs/skills/onboarding.md
New process or procedure (no existing file)Create docs/skills/<area>.md

If a pattern affects 2+ projectbluefin repos, write it locally first, then open a propagation issue in projectbluefin/common.


Format#

Add a dated section at the bottom of the relevant file:

### <what you learned> (YYYY-MM-DD)

**What failed:** <describe the symptom>
**Why:** <root cause>
**Fix:** <what to do instead>

```bash
# code example if applicable

Keep it concise. Future agents need to understand it at a glance.

---

## Committing

Skill file updates must be committed in the **same PR** as the change that generated the learning. Never a follow-up PR.

```bash
git add docs/build.md # or whichever file you updated
git commit --amend # add to the existing commit, or
git commit -m "docs(build): add lesson on buildah squash entrypoint bug"