Skip to content

Reviewing Candidates

Candidates are the raw per-session captures in the Skills tab → Sessions sub-view. Some are feedstock for Recommended; others are on a countdown to promoting themselves. For the full picture of how the tabs fit together — and which candidates take which road — see How It Works and The Skills Tab.

StatusMeaning
candidateCaptured, awaiting review, clustering, or the direct-promotion threshold
promotedLive in the Library as ~/.ptah/skills/<slug>/SKILL.md — by you, or on its own
rejectedDismissed — kept on record so identical trajectories aren’t re-captured

Each row also shows success and failure counts — a high failure ratio is a hint that the capture isn’t actually a good skill, and it’s also the counter direct promotion watches.

From a Sessions row:

  • Promote — force-elevate a single candidate straight to the Library right now, without waiting for the success threshold. Runs through the same judge and gates as automatic promotion — it just skips the wait.
  • Reject — remove it from the clustering pool and stop it accumulating toward direct promotion (optionally with a reason). There’s no hard delete — the row is kept without its body so the same trajectory won’t be re-captured.
  • Select a row — drills into the invocation history that produced it, so you can audit what Ptah noticed.

For automation or A2A scenarios, the same actions are exposed as RPC methods:

MethodWhat it does
skillSynthesis:listCandidatesList candidates with current state
skillSynthesis:promoteManually promote a candidate to a skill
skillSynthesis:rejectMark a candidate as rejected
skillSynthesis:listSuggestionsList the cluster-distilled Recommended skills
skillSynthesis:getSuggestionFetch one recommendation’s full body
skillSynthesis:updateSuggestionEdit a pending recommendation before accepting
skillSynthesis:acceptSuggestionAccept a recommendation into the Library
skillSynthesis:statsAggregate counts (candidates, promoted, etc.)