Update skill, agent, and prompt text to call os-git instead of raw git #1605

Closed
opened 2026-11-06 16:54:16 +00:00 by jared · 2 comments
Owner

Problem

Skills, agent definitions, and prompt files tell agents to run git commands directly: 34 rows in section B of the checklist. They repeat the commit rules per file (explicit paths, no add -A, no attribution) and name old tools (git-context:commit, git-context commit-apply, worktree start).

Design: docs/os-git/use-cases-and-domain.md (design) and docs/os-git/call-site-checklist.md (call sites). Settled decisions are in design section 1 (docs/os-git/use-cases-and-domain.md): the gem lives in plugins/os-git with a path: source; git-context and os:worktree merge into os-git; old wrappers go only after all references are updated; design order is use-cases, objects, interfaces; os-context and os-vault become Ruby; ticket tracking stays out of os-git.

Reproduce

n/a: prose change.

Approach

Replace a raw git instruction with the os-git command or skill that does the job, once that command exists. Keep a rule that forbids something (for example, "never add -A", "never stash") where it protects agents that still run git; delete a rule only when the object makes the mistake impossible. Rows in scope:

  1. B-01 os: G-087 to G-089. The worktree skill itself moves in the worktree ticket (#1589); this ticket updates the wrap skill (git-context:commit becomes the os-git commit command).
  2. B-02 os-sdlc: G-090 to G-108. Rows G-095 and G-106 are marked "unresolved" in the checklist: read the full lines first. Rows G-091 to G-093 hardcode main: use the base branch from the project setting (design Q6).
  3. B-03 os-doc-hygiene: G-109 to G-116. Row G-115 calls git-context commit-apply: switch it to the os-git command after the git-context ticket (#1591). Row G-111 uses add -A for the WIP checkpoint: use the explicit path list from ChangeSet#paths (design Q1). Row G-114 (reset --hard) belongs to #1609; leave it.
  4. B-04 cc-plugins: G-119 and G-120. G-117 and G-118 belong to the git-context ticket (#1591). Row G-120 (migrate-project.md) uses add -A: use explicit paths.
    Prose follows ASD-STE100. Run bin/refresh-plugins after changes to any SKILL.md.

Required work: none beyond the acceptance criteria.

Acceptance criteria

  1. Given a skill, agent, or prompt file in rows G-087 to G-116, G-119, and G-120 (except G-114), when it is read, then it either calls an os-git command or skill, or keeps a prohibition with a stated reason.
  2. Given the files, when they are searched for add -A, then no instruction to stage everything remains except in the scratch-directory harness text marked out of scope.
  3. Given the files, when they are searched for git-context:commit and git-context commit-apply, then no reference remains once the git-context ticket has shipped.
  4. Given rows G-095 and G-106, when the ticket closes, then each row records what the full line said.
  5. Given rows G-087 to G-113, G-115, G-116, G-119, G-120, when the ticket closes, then each row is marked - [x] with Replaced by filled in, or marked out of scope with a reason, in docs/os-git/call-site-checklist.md.
  6. Given bin/refresh-plugins has run, when a new session starts, then the changed skills load.

Blocking edges

Blocked by the worktree ticket (#1589) and the git-context ticket (#1591), so that the commands the text names exist.

Origin

  • Trigger: User request in session 1a5b2630-09c9-46cb-aee4-a5a98e2e7d24 on 2026-11-06: one os-git gem for all local git work in cc-os and the user's projects.
  • Improvised this session: none
  • Chain: agent text repeats git rules and names old tools ← skills written before one shared git interface ← DESIGN (docs/os-git/call-site-checklist.md section B)
  • Root candidate: none found; searched open issues for git, worktree, octokit, ruby port, python, statusline, reset --hard. Related but not a match: #845, #853, #857, #1527, #1554.
  • Where: plugins/os/skills/, plugins/os-sdlc/skills/, plugins/os-doc-hygiene/skills/, cc-plugins/
  • Session: 1a5b2630-09c9-46cb-aee4-a5a98e2e7d24
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/1a5b2630-09c9-46cb-aee4-a5a98e2e7d24.jsonl
## Problem Skills, agent definitions, and prompt files tell agents to run `git` commands directly: 34 rows in section B of the checklist. They repeat the commit rules per file (explicit paths, no `add -A`, no attribution) and name old tools (`git-context:commit`, `git-context commit-apply`, `worktree start`). Design: `docs/os-git/use-cases-and-domain.md` (design) and `docs/os-git/call-site-checklist.md` (call sites). Settled decisions are in design section 1 (`docs/os-git/use-cases-and-domain.md`): the gem lives in `plugins/os-git` with a `path:` source; `git-context` and `os:worktree` merge into `os-git`; old wrappers go only after all references are updated; design order is use-cases, objects, interfaces; `os-context` and `os-vault` become Ruby; ticket tracking stays out of `os-git`. ## Reproduce n/a: prose change. ## Approach Replace a raw git instruction with the `os-git` command or skill that does the job, once that command exists. Keep a rule that forbids something (for example, "never `add -A`", "never stash") where it protects agents that still run git; delete a rule only when the object makes the mistake impossible. Rows in scope: 1. B-01 `os`: G-087 to G-089. The worktree skill itself moves in the worktree ticket (#1589); this ticket updates the `wrap` skill (`git-context:commit` becomes the `os-git` commit command). 2. B-02 `os-sdlc`: G-090 to G-108. Rows G-095 and G-106 are marked "unresolved" in the checklist: read the full lines first. Rows G-091 to G-093 hardcode `main`: use the base branch from the project setting (design Q6). 3. B-03 `os-doc-hygiene`: G-109 to G-116. Row G-115 calls `git-context commit-apply`: switch it to the `os-git` command after the git-context ticket (#1591). Row G-111 uses `add -A` for the WIP checkpoint: use the explicit path list from `ChangeSet#paths` (design Q1). Row G-114 (`reset --hard`) belongs to #1609; leave it. 4. B-04 `cc-plugins`: G-119 and G-120. G-117 and G-118 belong to the git-context ticket (#1591). Row G-120 (`migrate-project.md`) uses `add -A`: use explicit paths. Prose follows ASD-STE100. Run `bin/refresh-plugins` after changes to any `SKILL.md`. Required work: none beyond the acceptance criteria. ## Acceptance criteria 1. Given a skill, agent, or prompt file in rows G-087 to G-116, G-119, and G-120 (except G-114), when it is read, then it either calls an `os-git` command or skill, or keeps a prohibition with a stated reason. 2. Given the files, when they are searched for `add -A`, then no instruction to stage everything remains except in the scratch-directory harness text marked out of scope. 3. Given the files, when they are searched for `git-context:commit` and `git-context commit-apply`, then no reference remains once the git-context ticket has shipped. 4. Given rows G-095 and G-106, when the ticket closes, then each row records what the full line said. 5. Given rows G-087 to G-113, G-115, G-116, G-119, G-120, when the ticket closes, then each row is marked `- [x]` with `Replaced by` filled in, or marked out of scope with a reason, in `docs/os-git/call-site-checklist.md`. 6. Given `bin/refresh-plugins` has run, when a new session starts, then the changed skills load. ## Blocking edges Blocked by the worktree ticket (#1589) and the git-context ticket (#1591), so that the commands the text names exist. ## Origin - Trigger: User request in session 1a5b2630-09c9-46cb-aee4-a5a98e2e7d24 on 2026-11-06: one os-git gem for all local git work in cc-os and the user's projects. - Improvised this session: none - Chain: agent text repeats git rules and names old tools ← skills written before one shared git interface ← DESIGN (docs/os-git/call-site-checklist.md section B) - Root candidate: none found; searched open issues for git, worktree, octokit, ruby port, python, statusline, reset --hard. Related but not a match: #845, #853, #857, #1527, #1554. - Where: plugins/os/skills/, plugins/os-sdlc/skills/, plugins/os-doc-hygiene/skills/, cc-plugins/ - Session: 1a5b2630-09c9-46cb-aee4-a5a98e2e7d24 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/1a5b2630-09c9-46cb-aee4-a5a98e2e7d24.jsonl
Author
Owner

Work started on branch ticket-1605.

Work started on branch ticket-1605.
Author
Owner

Resolution

Done: Skill, agent, and prompt rows G-087 to G-113, G-115, G-116, G-119, G-120 now call os-git, or stay as raw read-only steps or prohibitions with a stated reason. os-doc-hygiene clean commits by --path, with no add -A. wrap uses os-git. G-091 to G-093 read base_branch.

Evidence: main 31f29707, cc-plugins 2125188. os suite 242 runs 0 failures; os-sdlc suite 3508 runs 0 failures; refresh ran in worktree finish; orchestrator checked the clean rollback and SHA pattern against the new flow.

Follow-ups: none: the docs/implementation-status/os.md line and openspec archive files that name git-context are history; G-114 stays with #1609

## Resolution **Done:** Skill, agent, and prompt rows G-087 to G-113, G-115, G-116, G-119, G-120 now call os-git, or stay as raw read-only steps or prohibitions with a stated reason. os-doc-hygiene clean commits by --path, with no add -A. wrap uses os-git. G-091 to G-093 read base_branch. **Evidence:** main 31f29707, cc-plugins 2125188. os suite 242 runs 0 failures; os-sdlc suite 3508 runs 0 failures; refresh ran in worktree finish; orchestrator checked the clean rollback and SHA pattern against the new flow. **Follow-ups:** none: the docs/implementation-status/os.md line and openspec archive files that name git-context are history; G-114 stays with #1609
jared closed this issue 2026-11-06 23:37:05 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1605
No description provided.