{"slug":"public-contract-change","title":"public-contract-change","summary":"Change Labtasker's public Task lifecycle, HTTP API, Python API, CLI, configuration, query language, or persisted schema while keeping every public surface and invariant aligned. Do not use for internal refactors with no observable behavior change.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-29T20:07:29.282094Z","repo":{"url":"https://github.com/luocfprime/labtasker","stars":38,"forks":6,"license":"Apache-2.0","updatedAt":"2026-09-28T23:31:38Z"},"bodyHtml":"<hr>\n<h2>name: public-contract-change\ndescription: Change Labtasker's public Task lifecycle, HTTP API, Python API, CLI, configuration, query language, or persisted schema while keeping every public surface and invariant aligned. Do not use for internal refactors with no observable behavior change.</h2>\n<h1>Change the public contract</h1>\n<p>Read the relevant section of <code>docs/reference/specification.md</code> before editing.\nState the current contract, the requested change, and any unresolved behavioral\nchoice. If the request intentionally changes a decided behavior, update the\nspecification rather than treating the old text as an implementation obstacle.</p>\n<p>Before implementation, present every added, removed, or observably changed\npublic interface as a compact, separate review item. Give its exact signature,\ncommand or endpoint, inputs, defaults, output, errors and compatibility effect\nas applicable, then obtain the user's explicit approval. Do not infer approval\nfor an interface because it appeared inside a long specification or broader\nimplementation plan. A direct user request naming the exact interface change is\nexplicit approval for that change.</p>\n<p>Trace the complete affected slice before editing:</p>\n<ul>\n<li>persistence model and Alembic migration, when stored data changes;</li>\n<li>Server validation, service transaction, endpoint, error envelope, and OpenAPI;</li>\n<li>Client boundary model, transport, public method/function, and retry behavior;</li>\n<li>CLI command, stdout/stderr shape, help, and exit behavior;</li>\n<li>Worker runtime, journal, fencing, or concurrency behavior when applicable;</li>\n<li>user guides, references, examples, and tests.</li>\n</ul>\n<p>Keep the Client and Server distributions independent; duplicate small boundary\nmodels when necessary instead of creating a shared runtime package. Preserve\nexplicit lifecycle actions and <code>run_id</code> fencing. Define idempotency, concurrent\nstate changes, uncertain transport outcomes, validation errors, and migration\nbehavior instead of relying only on the happy path.</p>\n<p>Add focused tests at the lowest useful layer plus at least one real boundary test\nfor each changed public surface. Use independent SQLite connections for race or\ntransaction claims. Verify generated OpenAPI whenever endpoint schemas or errors\nchange.</p>\n<p>Finish by checking the specification, implementation, tests, and user docs for\nthe old term or behavior. Run targeted tests during development and the relevant\nvalidation matrix from <code>AGENTS.md</code> before handoff.</p>\n","files":[{"path":"SKILL.md","sizeBytes":2446,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-29T20:07:42.952043Z","sha256":"4B62E3925D24878BE8E4CDF9DA14F66252DE84125EBACD49A723135F72E317EC","sizeBytes":1291},"review":null,"source":{"repositoryUrl":"https://github.com/luocfprime/labtasker","path":".agents/skills/public-contract-change","license":"Apache-2.0","commit":"19f9599859969823fdc000d845518da146c73371","subtreeSha":"4369C874ABE5A339465F13E64E086BA7225D37DFE92177292E6FD90BD3170E55","lastSyncedAt":"2026-09-29T20:07:28.914258Z"},"reviewedAt":"2026-09-29T20:13:46.585613Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/luocfprime/labtasker/tree/main/.agents/skills/public-contract-change"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install luocfprime-labtasker@llmmart"},{"target":"git","command":"git clone https://github.com/luocfprime/labtasker.git"}]}