---
name: jacobobryant-biff-spec-dev
description: "Make the codebase conform to the spec."
license: "MIT"
metadata:
  decimalai-skill-id: "ee17425a-538f-40cd-ae1c-7f9c4eb14f82"
  decimalai-version-id: "3ded36f5-60d5-4daa-84bc-e6bc5deda3a7"
  decimalai-version: "1"
  decimalai-body-sha256: "0a04b99cbe8022323946d2c51a45fb679f700aae1672463f41169f43f6d170f2"
  decimalai-name: "jacobobryant/biff-spec-dev"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "coding"
  decimalai-source: "https://app.decimal.ai/s/jacobobryant-biff-spec-dev@1/SKILL.md"
---
There should be a `spec/agent/plan.md` file containing a checklist with
references to parts of the spec that need to be implemented. There may also be a
`spec/agent/questions.md` file with open questions and recommendations. If there
is not a `plan.md` file, run the `biff-spec-review` skill instead of this one.

If the plan file does exist, implement it. Follow the recommendations for any
open questions. Mark items off the checklist (replace `[ ]` with `[x]`) as you
go. If additional open questions come up during implementation, add them under a
`## Questions during implementation` section in `questions.md`.

After implementation, run the `biff-code-review auto` and `biff-code-quality`
skills. You do not need to tell the user the path of the review checklist file.
If the implementation is likely to be large (e.g. >500 lines of code), read
`rules.md` from the `biff-code-review` skill prior to implementation.

Verify all your work. If there are frontend changes, use a headless browser to
verify. If you need to create any files as part of that (e.g. for playwright),
put them in a temporary folder outside source control.

Prior to implementation, take a snapshot of the spec by copying `spec/` to a
temporary folder. If the user says "update", then take another snapshot and
compare it to the previous snapshot with `diff` etc, update `plan.md` and
`questions.md` accordingly, and implement the changes. See the
`biff-spec-review` skill for guidance for the content of `plan.md` and
`questions.md`.

If the user says "done", then delete `plan.md` and `questions.md`.
