Skip to content

Releases: jsuvic/agent-profile

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 09:37
dc52d02
  • Improve interactive first-contact guidance: the bare dispatcher now offers
    one consent-gated next action after each completed routed command, doctor
    groups repeated actionable findings into recommendations, the upgrade menu
    explains its keep/adopt-all/customize choices, and the dispatcher starts
    with a neutral agent-profile wordmark. Interactive fixture differences are
    limited to those new follow-up prompts, doctor recommendation lines, upgrade
    labels/hints/note, and the neutral dispatcher wordmark; non-interactive
    doctor and upgrade output and JSON remain unchanged.

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 12 Jul 09:36
8a29e78
  • Route interactive bare agent-profile invocations through a read-only
    repository-state menu while preserving byte-identical non-TTY help and all
    explicit subcommand contracts.

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 11 Jul 18:10
e294302
  • Add Phase 29 I1 Tabnine workflow skills (implementing
    docs/specs/phase-29/001-tabnine-workflow-skills.md; ADR 0013). The shared
    .agents/skills/ emission condition extends from "Codex enabled" to "Codex or
    Tabnine enabled", so Tabnine-only setups now emit the instruction-only
    workflow skills (grill-change, request-to-spec-issues, sdd-change,
    tdd-change, final-review), the selected review, specialist,
    mcp-fit-check, and phase-22 loop skills to the shared convention Tabnine CLI
    discovers - one file per skill, guidelines unchanged. Delegation-dependent
    skills (subagent-driven-change, implement-next) still require a
    delegation-capable client (Claude or Codex); a Tabnine-only setup omits them
    and gets an informational compile note. A single caveat note reports that
    Agent Skills discovery requires a current Tabnine CLI generation. Enabling
    Tabnine alongside Codex changes no existing .agents/skills/ byte
    (golden-proven); nothing is written under .tabnine/agent/ and Tabnine
    settings.json is never touched. ADR 0007 gains a dated note that its
    "skills reach only Claude/Codex" premise is outdated; its logging-topic
    decision is unchanged and is not superseded.

  • Correct Phase 27 command-flow guidance: init now names the ordered
    compile --write then upgrade path; compile dry-run explicitly says that
    nothing was written; compile and upgrade follow-up guidance names
    compile --write; upgrade can report and apply profile-only capability
    seeding without a lockfile while deferring the catalog stamp; empty import
    scans skip the strategy question with the preserve default; capability
    choices identify Claude/Codex-only output and Tabnine-only plans call out
    selected packs with no artifacts; write-mode import results use the heading
    Files report (state after write).

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 10 Jul 19:06
f34a2c3
  • Add Phase 27 I4 interactive drift reconciliation to compile (implementing
    docs/specs/phase-27/003-drift-reconciliation.md). At the point compile would
    refuse a hash-mismatched lockfile-owned file, an interactive TTY now shows the
    per-file drift diff (deterministically regenerated canonical bytes vs on-disk)
    and a classification menu. Root instruction files (AGENTS.md, CLAUDE.md)
    get a four-way menu — shared intent (relocate the user's lines into the
    AGENTS.md manual region, restoring the generated region to canonical; the
    Tabnine gap is stated inline), client-specific (relocate into the drifted
    file's own manual region), accidental (restore canonical + refresh hash), and
    cancel (default). All other drifted generated outputs get keep (reclassify
    manual-owned) / restore-canonical / cancel. Interleaved edits that cannot be
    cleanly separated from canonical bytes refuse relocation and reduce to
    keep/restore/cancel. Every outcome maps only to existing mixed /
    manual-owned / rehash transitions, routes through the existing region-aware
    planner and a single atomic write, and relocated user lines are byte-preserved.
    Cancel at any prompt writes nothing and prints the standard refusal.
    Non-interactive compile, --json, exit codes, and --force are byte-identical
    and never evaluate clack (lazy-imported behind the interactive gate).

  • Add Phase 27 I3 agent-profile upgrade: catalog-version-aware reporting,
    interactive keep/adopt/customize choices with preview-only defaults, and the
    explicit --write --adopt-recommended scripted mutation path. Profile edits
    are insertion-only and byte-preserving through YAML Document offsets;
    flow-style, anchored, or malformed targets fail closed with exact manual
    lines and no partial write. Successful writes stamp the integer catalog
    revision and point to (but never chain) agent-profile compile. Existing
    interactive init now points to upgrade; non-interactive init remains
    byte-identical. Clack remains lazy behind the interactive gate.

  • Add Phase 26 WS2-I1 static presentation for compile, doctor, ui, and
    the init write phase (implementing docs/specs/phase-26/001-clack-cli-presentation.md,
    issue 003-static-presentation.md). On the interactive TTY only: compile
    gains the wordmark logo, a compile spinner, a colored +/~/= write
    plan, a --write progress bar, and a log.success file-count summary;
    doctor gains the logo, a timer spinner, color-tinted [error]/[warning]/
    [info] severities, a green No issues found., and a one-line count
    summary; ui gains the logo, a task log over the already-spawned server's
    stdout (cleared on port bind, retained on non-zero exit), and the
    url/root/posture block as a note; the init write phase renders as named
    steps (create profile, generate client files, update .gitignore). Color is
    applied via node:util styleText through the pure branding.ts helpers
    (no color dependency); every clack call is dynamically imported behind the
    interactive-TTY gate, so non-interactive, --json, --quiet, piped, and
    generated-file surfaces stay byte-identical and never evaluate clack. The
    named write steps use a spinner-based runner rather than clack tasks(),
    which leaks its frame timer and blocks stdin when a step throws.

  • Fix 0.4.1 import-report ownership conformance: root instruction files now
    honor lockfile v1/v2 ownership before marker inspection, report generated
    drift consistently with compile, refuse damaged mixed ownership, and never
    offer regions adoption for lockfile-owned files (Phase 27/001).