Skip to content

refactor(source-control): read the babysit loop keys from docs/conventions/source-control.yaml #9726

Open

Description

@kyle-sexton

Parent

Refs #5906

Depends on

Outcome

The babysit_loop_* keys (stop_mode, tier, merge, grace_window_minutes) resolve from
docs/conventions/source-control.yaml for the local babysit loop and for babysit's remote read of a target
repository, with .claude/source-control.md read only when the YAML lacks the key, for one release.

Decisions

  • ADR 0064 Decision 1: a plugin's team settings live in one docs/conventions/<concern>.yaml, validated by a
    JSON Schema at plugins/<plugin>/schemas/<concern>.schema.json (Decision 6), checked in CI by
    scripts/check-convention-yaml.sh (Decision 7). Script readers use the shared reader lib/parse-concern-value.sh.
  • ADR 0075: layers are plugin default < userConfig < team <home>/<concern>.yaml < personal
    <home>/<concern>.local.<ext>; every resolver reports the layer that supplied each value.
  • Migrate per-skill .claude config files to userConfig, one conventions doc, or the cascade (ADR 0018) #5906 (comment 2026-10-04): each reader keeps reading the old file for one release when the new file is
    absent, and this repository keeps its old file until the cleanup slice.
  • ADR 0064 Decision 9: a remote reader keeps its own fetch from the default branch through the contents API.

Key interfaces

  • plugins/source-control/skills/babysit-prs/scripts/babysit_repo_config.py and its fake, the babysit-loop
    operator-options.mjs, the babysit eval scaffolds, scripts/promotion-evidence-e2e.test.mjs.

Done when

  • docs/conventions/source-control.yaml holds the four babysit_loop_* values and scripts/check-convention-yaml.sh --check exits 0.
  • scripts/run-test-file.sh plugins/source-control/skills/babysit-prs/scripts/tests/test_babysit_repo_config.py exits 0 with cases for: a remote YAML value wins, a remote repo with only the old file still resolves, neither file yields the defaults.
  • scripts/run-test-file.sh scripts/promotion-evidence-e2e.test.mjs exits 0.
  • The PR body lists each migrated key with its new home and schema.
  • scripts/check-changelog-fragments.sh --check-required origin/main exits 0.

Out of scope

  • Deleting .claude/source-control.md.

Activity

  1. added theissue type on Oct 24, 2026
  2. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    admission-deferredReady for the issue lane; work-unblock admits it when queued work is under the queued cap
    on Oct 24, 2026
  3. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane yet: blocker #9725 is not closed as completed by a listed human or a merge.

  4. removed
    admission-deferredReady for the issue lane; work-unblock admits it when queued work is under the queued cap
    on Oct 24, 2026
  5. added
    admission-deferredReady for the issue lane; work-unblock admits it when queued work is under the queued cap
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredReady for the issue lane; work-unblock admits it when queued work is under the queued cap
    on Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions