Skip to content

refactor: use project status JSON for skill state reads#65

Open
tkstang wants to merge 42 commits intomainfrom
feat/skill-cli-migration
Open

refactor: use project status JSON for skill state reads#65
tkstang wants to merge 42 commits intomainfrom
feat/skill-cli-migration

Conversation

@tkstang
Copy link
Copy Markdown

@tkstang tkstang commented Apr 27, 2026

refactor: use project status JSON for skill state reads

Summary

This PR migrates OAT skills that hand-parsed project state.md frontmatter to CLI-owned project status reads. The migrated skills still treat state.md as the source of truth, preserve existing write paths, keep null-sentinel behavior stable, and use concise oat project status --field / --shell / --project-path snippets instead of local JSON plumbing.

Quick-mode note: this project has discovery, plan, implementation, review, and verification artifacts, but no spec or design artifacts.

Goals / Non-Goals

  • Use the project status CLI surface as the canonical read path for migrated skills.
  • Preserve current behavior, including YAML null surfacing as the literal null sentinel.
  • Keep state writes, non-state.md greps, and broader state-read migrations out of scope.
  • Keep skill snippets readable while documenting how CI/cloud environments can provide an oat shim backed by npx.

Changes

  • Added oat project status --field <path> for arbitrary-depth single-field reads.
  • Added oat project status --shell NAME=path ... for shell-safe multi-field assignments from one project status read.
  • Added oat project status --project-path <path> for repo-relative or absolute path-directed reads when a skill has already resolved the target project.
  • Documented the canonical project-state read pattern in create-oat-skill, including the oat PATH contract and npx-backed shim for CI/cloud environments.
  • Added contract tests for the JSON keys migrated skills depend on, plus field/shell/path-directed output behavior.
  • Migrated read paths in oat-project-progress, oat-project-pr-progress, oat-project-plan, oat-project-pr-final, oat-project-review-provide, oat-project-reconcile, and oat-project-complete to concise --field / --shell snippets.
  • Restored target-worktree workflow-mode validation in oat-project-review-provide via --project-path after final review identified that path-directed reviews still need to validate the requested worktree.
  • Applied lockstep public package version bump 0.0.50 to 0.0.53 after rebasing onto an origin/main already at 0.0.52, and regenerated public package version metadata.
  • Updated docs/reference material for --field, --shell, --project-path, and the oat shim contract.

Verification

  • pnpm lint
  • pnpm format
  • pnpm type-check
  • pnpm test (1365 tests)
  • pnpm build
  • pnpm release:validate
  • Live CLI smoke tests for relative and absolute --project-path with --field and --shell

Reviews

Scope Type Status Date Artifact
p01 code passed 2026-04-27 archived locally
p02 code passed 2026-04-27 archived locally
p03 code passed 2026-04-27 archived locally
p04 code passed 2026-04-27 archived locally
p-rev1 code passed 2026-04-27 archived locally
final code passed 2026-04-27 archived locally
spec artifact n/a - quick mode, no spec artifact
design artifact n/a - quick mode, no design artifact
plan artifact fixes_completed 2026-04-24 archived locally

Archived review artifacts are intentionally not linked because .oat/**/reviews/archived/ is configured as a local-only path.

References

tkstang added 30 commits April 27, 2026 18:19
Set HiLL checkpoint to final phase per workflow.hillCheckpointDefault,
enable auto-review at HiLL checkpoints, and transition state to
implement / in_progress at p01-t01.
…t for skills

- contributing/skills.md: add 'Reading project state' subsection pointing to
  the canonical preamble in create-oat-skill and noting the test-locked JSON
  contract
- reference/cli-reference.md: annotate 'oat project status --json' as a stable
  skill contract; list locked field set
- .oat/repo/reference/current-state.md: add 'Skill state reads' bullet under
  State + Conventions
- backlog/items/bl-281c: mark state.md slice complete (preamble pattern,
  fallback, contract test, docs); narrow remaining scope to plan.md /
  implementation.md migration + named-candidate skills not covered by the
  state.md grep scan; reduce priority high -> medium
- roadmap: control-plane read-layer follow-through now 'In progress' with
  state.md slice shipped
- backlog/index.md: regenerated managed marker section via
  'oat backlog regenerate-index'
@tkstang tkstang force-pushed the feat/skill-cli-migration branch from 44d5643 to 32e0626 Compare April 27, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant