Skip to content

Releases: MrReasonable/sluice

v4.10.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 18 Oct 19:24

4.10.0 (2026-10-18)

Features

  • leads: job-sluice leads prep, an interview prep brief from STAR stories (#195) (ae80ce7)
  • mcp: a read-only prep_brief tool and an interview_prep coach prompt (#195) (e63dc94)

Bug Fixes

  • mcp: the interview coach accounts for every requirement by name, and the eval reaches the read-only save advice (9ca48d8)
  • mcp: the interview coach gives a working verify route, asks in the posting's words and keeps a guess a guess (df477d3)
  • mcp: the interview coach probes every "we", offers every requirement, and asks for the telling after a read-back (9f77ed6)
  • mcp: the interview_prep coach gives saved stories a Best For and quotes the posting when asked (ac7f215)
  • vault: a verified: value a person typed as no reads as unverified (8ec67b2)

Refactoring

  • core: move rank and jd_keywords into core/rank.py (#195) (5f42161)

Documentation

  • plan: implementation plan for #195 interview prep briefs (PR 1) (96464e8)
  • plan: implementation plan for #195 PR 2 (MCP tool, coach prompt, eval runner) (4d49f94)
  • spec: interview prep briefs from STAR stories (#195, part 1) (0af95c3)

v4.9.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 15 Oct 05:57

4.9.0 (2026-10-15)

Features

  • triage: give up on leads that stay unjudgeable (#402) (ac48baa)

Documentation

  • plan: implementation plan for #402 unjudgeable give-up (c3ec982)
  • spec: give-up rule for leads that stay unjudgeable (#402) (7d9f7c6)

v4.8.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 14 Oct 20:03

4.8.0 (2026-10-14)

Features

  • leads: add job-sluice leads unpark (#302) (35f251e)
  • leads: add the unpark report and move to the facade (#302) (be4b996)
  • leads: clear a triage_blocked stamp when a follow-up is answered (#302) (7b6eb23)
  • triage: clear the triage_blocked stamp when a triage write lands (#302) (0c8bc3a)
  • triage: count blocked research leads in the triage report (#302) (bbbca64)
  • triage: define the triage_blocked stamp (#302) (1666937)
  • triage: name blocked research leads in the run digest (#302) (3964aa7)
  • triage: stamp a refused unjudgeable verdict on a research lead (#302) (effab6c)

Bug Fixes

  • leads: dismiss a slug named twice in leads expire once (f343908)

Documentation

  • design the research-lead migration for blocked boards (#302) (fab6f54)
  • fold plan-review findings into the research migration design (#302) (2318162)
  • fold round-2 plan review into the research migration design (#302) (ce05cac)
  • fold round-3 plan review into the research migration design (#302) (a8ad303)
  • plan the research migration implementation (#302) (e6756e6)
  • point the research migration design at #402 for unjudgeable re-judging (8cdf681)

v4.7.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 14 Oct 10:31

4.7.0 (2026-10-14)

Features

  • core: declare which evidence fields the triage judge may see (#196) (7c21e00)
  • triage: add the opt-in triage.evidence key (#196) (df4f378)
  • triage: render a verified candidate record into the judge prompt (#196) (45a7294)
  • triage: report what the judge was shown of the candidate record (#196) (f3f44cb)
  • triage: show the judge the verified candidate record when opted in (#196) (3f5250e)

Bug Fixes

  • triage: exit non-zero when the judge returns no verdicts (#196) (e234da7)

Refactoring

  • core: give cv_name and the skill-label test one home in core (#196) (f02f363)

Documentation

  • describe the opt-in candidate record for the triage judge (#196) (f56dc20)
  • design evidence-aware triage (#196) (2bb78d8)
  • plan evidence-aware triage (#196) (f799a59)
  • record the live eval result for triage.evidence (#196) (f8c6e50)

v4.6.1

Choose a tag to compare

@sluice-release-please sluice-release-please released this 13 Oct 14:33

4.6.1 (2026-10-13)

Changed

cv run's advisory audit has a fourth verdict, deduced, and holds fewer clean CVs for
sign-off. Nothing in your config changes, and cv.require_signoff means what it did:

  • A claim no single experience entry states, such as a profile line summing up several
    roles, is now deduced when every part of it is evidenced somewhere in your entries
    and the dates let them combine (the work it draws on came before or during the role it
    sits under). It prints as AUDIT: deduced with the entries it combined, and does not
    hold the CV. Before, such a line came back unsupported and held it.
  • A claim with a part evidenced nowhere, or one the dates rule out, is still
    unsupported and still holds. So does a deduced line that cites no real entry.
  • The auditor is now shown your CV Layout's roles with their dates, to date the entries.
    An entry the layout places in several roles is dated only to their span.

Bug Fixes

  • cv: let the audit deduce a claim from combined experience (#380) (99c32ac)

Documentation

  • describe the audit's deduced verdict and timeline (#380) (5234eda)

v4.6.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 13 Oct 03:23

4.6.0 (2026-10-12)

Changed

Research leads now come with a worklist (job-sluice leads followups, leads mark-asked,
leads answer). Three things change on an existing install without you running any of
the new commands:

  • Every triage verdict now writes a new frontmatter key, triage_next: the question a
    research verdict asks you to put, or blank. Notes gain the key the next time they are
    judged. A value you type there over several lines is left alone.
  • The triage digest gains a standing Research queue: line counting every research lead,
    how many you have marked asked, and how long ago the oldest was first seen. It is
    omitted when there are no research leads.
  • Text written into a lead note's ## Job description section (leads add --jd-file,
    the MCP create_lead tool) now has an unclosed code fence closed for it, so a pasted
    posting can no longer turn the rest of the note into code.

No config keys are added. A lead you mark asked is skipped by triage run until you
record the answer; nothing is skipped until you do.

Features

  • core: mark a research lead asked and record its answer (#378) (a218a69)
  • core: read and write research follow-up answers (#378) (41e8443)
  • leads: list research follow-ups, mark them asked and record answers (#378) (b7c9e01)
  • mcp: label the follow-up answers section as the user's own notes (#378) (f338d52)
  • triage: record each verdict's next action and clear a stale asked stamp (#378) (2a3d958)
  • triage: skip leads awaiting a reply and show the judge recorded answers (#378) (b5647d3)

Documentation

  • describe the research follow-up worklist (#378) (feaa83c)
  • design the research follow-up worklist (#378) (c1c732d)
  • fold the second spec review into the follow-up design (#378) (c87263e)
  • fold the spec review into the follow-up design (#378) (d599290)
  • fold the third spec review into the follow-up design (#378) (0a110a9)
  • plan the research follow-up worklist (#378) (7237f3f)

v4.5.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 12 Oct 14:59

4.5.0 (2026-10-12)

Changed

A CV composed without a job description is now HELD for job-sluice cv signoff by
default, under a new key, cv.blind_hold (true). That covers a fetch that failed, one
that brought back nothing, and a job description (fetched, or from the lead note's own
## Job description section) shorter than min_jd_chars. Its PDF is still written to
served_dir, but the lead's tailored_cv pointer is withheld until you sign off, so a CV
that is not tailored to the role is never marked send-ready by itself. What this means for
you:

  • Before this release such a CV was served, and only counted in a composed blind summary
    line. To keep that behaviour, set cv.blind_hold: false.
  • cv.require_signoff: false does not turn this hold off; it answers a different question
    (an unsupported claim), and the two keys are independent.
  • cv signoff shows the reason separately from any flagged claims and says how to get a
    tailored CV: --discard, add a ## Job description section to the lead note, then
    cv run again. MCP cv_signoff returns it under its own blind key.
  • The cv run summary line now reads cv: N lead(s) had no usable job description, and
    counts a lead whose run then failed too.

Features

  • cv: compose from the lead note's job description and report its source (#369) (3d827fc)
  • cv: hold a CV composed without a job description for sign-off (#369) (0f9bdc1)
  • leads: write a job description when adding a lead (#369) (1d81a0b)
  • triage: judge a lead from its note's job description (#369) (53e8d75)

Bug Fixes

  • cv: never replace an existing sign-off hold (b9b297b)

Refactoring

  • core: add the job-description section grammar (#369) (957e412)
  • core: give the blind reasons one home and one reader (#369) (fa283a1)
  • core: let the dossier cache take a job description it is handed (#369) (43b3681)
  • core: report the note ref from Store.upsert (#369) (f38a6f5)

Documentation

  • describe the lead-supplied job description and the blind hold (#369) (b1102c6)
  • plan: implementation plan for the blind CV hold (#369) (437d357)
  • spec: blind CV hold and a lead-supplied job description (#369) (1c2a849)
  • spec: fold review round 1 into the #369 design (d5372be)
  • spec: fold review round 2 into the #369 design (fd2a899)
  • spec: fold review round 3 into the #369 design (610b8c4)
  • spec: fold review round 4 into the #369 design (f6b2133)

v4.4.1

Choose a tag to compare

@sluice-release-please sluice-release-please released this 11 Oct 10:24

4.4.1 (2026-10-11)

Bug Fixes

  • mcp: report the installed version in serverInfo (f570d4e)

v4.4.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 10 Oct 22:03

4.4.0 (2026-10-10)

Features

  • mcp: job-sluice mcp install (dfa1af2)
  • mcp: read a client's registration and write the JSON route (cddf871)
  • mcp: register in Codex by appending a new entry table (6aed841)
  • mcp: register through a client's own add command, proven by readback (3e20dd8)
  • mcp: strict and JSONC readers for client config files (c82e0f6)
  • mcp: the client roster mcp install writes to, per platform (2968d4a)
  • mcp: the server command mcp install registers (977faaa)

Bug Fixes

  • mcp: report only the extra's own modules missing as the extra missing (5200a08)
  • setup: report a config that stops being UTF-8 mid-save as failed (b64982b)

Refactoring

  • core: add atomicfile.replace_if, one create-or-replace writer (712b0e6)
  • core: write_config_text and keep_config_copy use atomicfile (e93101a)
  • mcp: give the mcp-not-installed message one importable home (62b7b92)

Documentation

  • architecture: describe core/atomicfile.py (16066de)
  • plan: Codex appends a new entry table when it has none (059679b)
  • plan: fold review-plan findings into the atomicfile plan (5743b01)
  • plan: fold review-plan findings into the mcp install command plan (68bc1f7)
  • plan: fold the append-route plan review into mcp install (76a0d0c)
  • plan: job-sluice mcp install, PR 2 of mcp install (100d61a)
  • plan: shared atomicfile writer, PR 1 of mcp install (01bd819)
  • spec: an absent file's expected state is absence on the command route (7675a2d)
  • spec: Codex appends a new entry when it has none (29c3d5a)
  • spec: fold review-plan findings into mcp install design (6699a37)
  • spec: fold round-2 review-plan findings into mcp install design (ad55c20)
  • spec: fold the PR 2 plan review's rulings into mcp install design (8e86952)
  • spec: job-sluice mcp install design (b8cca6f)
  • spec: mcp install deletes a client's backup once its write is proven clean (a9e9a13)
  • spec: record the client measurements and the routes they decide (de5cebe)
  • spec: redact an existing entry's arguments; recheck before a client write (0fa2adf)

v4.3.0

Choose a tag to compare

@sluice-release-please sluice-release-please released this 10 Oct 00:33

4.3.0 (2026-10-09)

Features

  • mcp: verify_evidence's review form now reaches MCP clients on protocols older than 2026-07-28 that declare form support (#387). They are sent the form as a request during the tool call; before, they were told to use the CLI. Measured on 2026-10-09: Cursor and Codex now show the form and verify what you tick. The rules are unchanged: every entry starts unticked, only an explicit tick verifies it, and only while its text is still what the form showed. A form sent this way waits five minutes for an answer, then reports no_answer and verifies nothing (opencode 2.0.20 accepts the form and never answers); a client that answers with an error gets form_failed. Clients without form support, among them Gemini CLI and Claude Desktop, still get unsupported_client and the job-sluice experience verify fallback.

Bug Fixes

  • mcp: the career_interview prompt no longer takes an argument (#387). Claude Code passes a prompt only the first word of whatever follows the command, so a request typed after /mcp__job-sluice__career_interview reached the coach as one word. Type the command on its own, then say what you want from the session in your next message.

No existing config key, default or note changes meaning in this release.

Documentation

  • docs/AI-SETUP.md is rewritten around the career coach: an agent installs sluice, registers its MCP server at user scope, checks the install can serve MCP, and hands you the coach's command; it then sets up the CV Layout and proposes evidence for you to verify. Agents whose client cannot show MCP prompts follow an appendix (#387).
  • docs/MCP.md has a new "Install in your client" section with setup for Claude Code, Docker, opencode, Claude Desktop, Cursor, VS Code, Codex and Gemini CLI, each giving the version and date it was measured and whether prompts and the review form work there.
  • Every claude mcp add example registers the server with --scope user and the executable's full path.