[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78ESTPDRR3WKSSXT1FF4XPZ":3,"skill-same:01M78ESTPDRR3WKSSXT1FF4XPZ":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M78ESTPDRR3WKSSXT1FF4XPZ","build-pipeline",null,"Nix-first reproducible builds combined with container builds; evolvable build targets recorded from \u002Fspecialise.","fiq\u002Fagentic-team-project-template","fiq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F236293?v=4","01M78EQGW3HF88E3HBN7HZ5JG1","Raf Gemmail","01M78EQGWP2B0TZD7T3A5Y3GBF",1,"MIT","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fspecialise\u002Fbuild-pipeline\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: build-pipeline\ndescription: Nix-first reproducible builds combined with container builds; evolvable build targets recorded from \u002Fspecialise.\n---\n\n# Build Pipeline\n\n## Policy\n\nEvery generated project must make an explicit build decision at `\u002Fspecialise`.\nNix owns the developer toolchain and provides a reproducible build\nenvironment. The container build produces the deployable artefact when\napplicable. Build targets are evolvable — record the target and revisit trigger.\n\nRepeatability is the core principle: the same commit must produce the same\nbuild artefact, locally and in CI.\n\n## Nix-first build\n\nThe `flake.nix` provides a reproducible build environment. The build command\n(`project build`) produces artefacts deterministically from the Nix shell.\n\n- prefer Nix for developer tooling and build reproducibility;\n- the `flake.nix` is the source of truth for the toolchain;\n- `project build` runs inside the Nix shell so local and CI builds match;\n- do not introduce NVM, pyenv, asdf or similar version managers on NixOS.\n\n## Container build\n\nWhen a deployable service, the container build uses the Nix environment (or a\nmulti-stage Dockerfile) to produce a pinned, reproducible image. See\n[`specialise\u002Fcontainer-build`](..\u002Fcontainer-build\u002FSKILL.md) for container-specific\nrequirements (non-root user, health check, `.dockerignore`, `image-test`).\n\nThe container build is one build target, not the only one. The build target\nmay evolve: container, Lambda zip, static binary, etc.\n\n## Evolvability\n\nBuild targets are evolvable. Record the target and a revisit trigger in\n`PROJECT_PROFILE.toon.build`. Changing the base image or build target later\nis expected — the skill provides the decision framework, not a fixed target.\n\n## Required artifacts (when applicable)\n\n- `.agentic-template\u002Fbin\u002Fproject build`;\n- `Dockerfile` or `Containerfile` when the target is a container;\n- pinned base image or a documented update policy;\n- `.agentic-template\u002Fbin\u002Fproject image` \u002F `project image-test` when applicable.\n\n## Command surface\n\nExpose `.agentic-template\u002Fbin\u002Fproject build`. It must:\n\n- run inside the Nix shell for reproducibility;\n- produce the build artefact deterministically;\n- fail loudly on build errors.\n\nLibraries, mobile apps, desktop apps and Godot projects may record `build` as\n`not_applicable` with a reason, but must not leave it unspecialised after\n`\u002Fspecialise`.\n\n## Profile state\n\nRecord in `PROJECT_PROFILE.toon`:\n\n```toon\nbuild:\n  nix_first: true\n  target: container | lambda_zip | static_binary | not_applicable\n  container_base_image: ...\n  revisit_trigger: deployment_target_change_or_base_image_deprecation\n  enforce_in_ci: true\n```\n\n## CI integration\n\nCI must call `project build` before `project test` when applicable. See\n[`specialise\u002Fci`](..\u002Fci\u002FSKILL.md).\n\n## Do not\n\n- Leave `build` unspecialised after `\u002Fspecialise` for deployable services.\n- Commit unpinned base images without an update policy.\n- Duplicate build logic between Nix and Dockerfile — the Dockerfile should\n  consume the Nix-built artefact where practical.\n- Introduce version managers (NVM, pyenv, asdf) on NixOS.\n- Treat `npx` as a runtime.\n","# Build Pipeline\n\n## Policy\n\nEvery generated project must make an explicit build decision at `\u002Fspecialise`.\nNix owns the developer toolchain and provides a reproducible build\nenvironment. The container build produces the deployable artefact when\napplicable. Build targets are evolvable — record the target and revisit trigger.\n\nRepeatability is the core principle: the same commit must produce the same\nbuild artefact, locally and in CI.\n\n## Nix-first build\n\nThe `flake.nix` provides a reproducible build environment. The build command\n(`project build`) produces artefacts deterministically from the Nix shell.\n\n- prefer Nix for developer tooling and build reproducibility;\n- the `flake.nix` is the source of truth for the toolchain;\n- `project build` runs inside the Nix shell so local and CI builds match;\n- do not introduce NVM, pyenv, asdf or similar version managers on NixOS.\n\n## Container build\n\nWhen a deployable service, the container build uses the Nix environment (or a\nmulti-stage Dockerfile) to produce a pinned, reproducible image. See\n[`specialise\u002Fcontainer-build`](..\u002Fcontainer-build\u002FSKILL.md) for container-specific\nrequirements (non-root user, health check, `.dockerignore`, `image-test`).\n\nThe container build is one build target, not the only one. The build target\nmay evolve: container, Lambda zip, static binary, etc.\n\n## Evolvability\n\nBuild targets are evolvable. Record the target and a revisit trigger in\n`PROJECT_PROFILE.toon.build`. Changing the base image or build target later\nis expected — the skill provides the decision framework, not a fixed target.\n\n## Required artifacts (when applicable)\n\n- `.agentic-template\u002Fbin\u002Fproject build`;\n- `Dockerfile` or `Containerfile` when the target is a container;\n- pinned base image or a documented update policy;\n- `.agentic-template\u002Fbin\u002Fproject image` \u002F `project image-test` when applicable.\n\n## Command surface\n\nExpose `.agentic-template\u002Fbin\u002Fproject build`. It must:\n\n- run inside the Nix shell for reproducibility;\n- produce the build artefact deterministically;\n- fail loudly on build errors.\n\nLibraries, mobile apps, desktop apps and Godot projects may record `build` as\n`not_applicable` with a reason, but must not leave it unspecialised after\n`\u002Fspecialise`.\n\n## Profile state\n\nRecord in `PROJECT_PROFILE.toon`:\n\n```toon\nbuild:\n  nix_first: true\n  target: container | lambda_zip | static_binary | not_applicable\n  container_base_image: ...\n  revisit_trigger: deployment_target_change_or_base_image_deprecation\n  enforce_in_ci: true\n```\n\n## CI integration\n\nCI must call `project build` before `project test` when applicable. See\n[`specialise\u002Fci`](..\u002Fci\u002FSKILL.md).\n\n## Do not\n\n- Leave `build` unspecialised after `\u002Fspecialise` for deployable services.\n- Commit unpinned base images without an update policy.\n- Duplicate build logic between Nix and Dockerfile — the Dockerfile should\n  consume the Nix-built artefact where practical.\n- Introduce version managers (NVM, pyenv, asdf) on NixOS.\n- Treat `npx` as a runtime.\n",{"name":5,"description":7},"main","2e1386f0fc9bb51c8c3d036fd957ad9701d5af2c",".agents\u002Fskills\u002Fspecialise\u002Fbuild-pipeline",0,"https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template","https:\u002F\u002Fgithub.com\u002Ffiq","www.dreamthought.com","See also: github.com\u002Fdreamthought","2026-08-08 12:58:37",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add fiq\u002Fagentic-team-project-template --skill build-pipeline",{"tool":39,"command":40},"bunx","bunx skills add fiq\u002Fagentic-team-project-template --skill build-pipeline",{"tool":42,"command":43},"pnpm","pnpm dlx skills add fiq\u002Fagentic-team-project-template --skill build-pipeline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fspecialise\u002Fbuild-pipeline\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M78EXRP339RTZPMP632VZ3JA","agentic-template","Start or continue work in this repository using the canonical AGENTS.md contract and repository skill catalog.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentic-template\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M78EXP4HZ9D8DFS7D89VGAXA","wiki-tidy","Reconcile the wiki against the knowledge graph, specs and code; prune stale, keep links resolving.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow\u002Fwiki-tidy\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M78EXMFDW9KBC49PZ7V1QTGX","update-handoff","Update HANDOFF.toon with current semantic work state.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow\u002Fupdate-handoff\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M78EXK4ZPNX0XB3Q22VHERFC","test-first","Drive meaningful behaviour changes with the smallest useful failing test.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow\u002Ftest-first\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M78EXJ12X1SETV8V88Z38DSQ","test-change","Select and run tests that prove a change at suitable fidelity.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow\u002Ftest-change\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M78EXGS493XYQ98Q0ZKV242P","specify","Create proportional OpenSpec-shaped structured change proposals for meaningful changes.","https:\u002F\u002Fgithub.com\u002Ffiq\u002Fagentic-team-project-template\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow\u002Fspecify\u002FSKILL.md",[],[]]