Skip to content

Document the .workflow/ workflow in AGENTS.md + fix three pre-existing British spellings in NEWS.md#175

Open
gregfaletto wants to merge 2 commits into
mainfrom
docs-agents-workflow-pointer
Open

Document the .workflow/ workflow in AGENTS.md + fix three pre-existing British spellings in NEWS.md#175
gregfaletto wants to merge 2 commits into
mainfrom
docs-agents-workflow-pointer

Conversation

@gregfaletto
Copy link
Copy Markdown
Owner

@gregfaletto gregfaletto commented May 29, 2026

Two related docs-hygiene changes:

1. AGENTS.md workflow pointer + catalog. Adds a "Working in this repo as a coding agent" section to AGENTS.md that (1) mandates following the ExecPlan workflow at .workflow/PLANS.md for any non-trivial PR, (2) defines "non-trivial" by reference to IMPLEMENTER_AGENT.md § "When to use this subagent", and (3) catalogs each of the ten .workflow/*.md documents with a one-paragraph description.

Closes a discoverability gap: .workflow/ is .gitignored, and AGENTS.md (the top-level orientation doc an agent reads first) previously had zero references to it. An agent following only AGENTS.md had no way to know the workflow exists. The reverse pointer already existed — .workflow/PLANS.md treats AGENTS.md as required reading — but the asymmetry meant new agents could spend a session missing the multi-subagent review cycle, the per-PR CRAN gate's full command sequence (including air format ., spell_check, urlchecker), and the PLAN.md living-document format.

2. Pre-existing British spellings in NEWS.md → US English. devtools::spell_check() was flagging three British spellings in NEWS.md introduced by my PRs #166 (idCohorts vectorize) and #167 (my_scale vectorize) — exactly because my per-PR gate on those PRs only ran devtools::check(args = "--as-cran") and not also spell_check, a gap that this PR's AGENTS.md update now documents. Conversions: "Vectorised" → "Vectorized", "behaviour" → "behavior", "lex-sorted" → "lexicographically-sorted", "randomised" → "randomized". devtools::spell_check() now reports "No spelling errors found.".

Neither change touches package source; AGENTS.md is .Rbuildignored and NEWS.md is documentation only. No version bump, no inst/CITATION update.

CRAN gate: 0 errors / 0 warnings / 0 notes on both commits.

gregfaletto and others added 2 commits May 29, 2026 11:05
… workflow docs

Adds a "Working in this repo as a coding agent" section to AGENTS.md that
(1) mandates following the ExecPlan workflow at .workflow/PLANS.md for any
non-trivial PR, (2) defines "non-trivial" by reference to
IMPLEMENTER_AGENT.md's "When to use this subagent" criteria, and (3)
catalogs each of the ten .workflow/*.md documents with a one-paragraph
description of what each one covers.

Closes a discoverability gap: .workflow/ is .gitignored, and AGENTS.md
(the top-level orientation doc that an agent reads first) previously had
zero references to it. An agent following only AGENTS.md had no way to
know the workflow exists. The reverse pointer already existed --
.workflow/PLANS.md treats AGENTS.md as required reading -- but the
asymmetry meant new agents could spend a session missing the
multi-subagent review cycle, the per-PR CRAN gate's full command sequence
(including air format ., spell_check, urlchecker), and the PLAN.md
living-document format with Progress / Surprises & Discoveries /
Decision Log / Outcomes & Retrospective sections.

AGENTS.md is .Rbuildignored so this change is purely repo-local and does
not affect the package build, CRAN tarball, or any user-visible
behaviour. No version bump, NEWS entry, or inst/CITATION update needed.

CRAN gate: 0 errors / 0 warnings / 0 notes (with _R_CHECK_SYSTEM_CLOCK_=
false; the time-server NOTE is environment-dependent and unrelated).
devtools::spell_check() reports the same 3 pre-existing flags it would on
origin/main (NEWS.md "behaviour", "lex", "randomised" -- pre-existing
from #166 and #167, not introduced by this PR; follow-up PR will fix).
urlchecker::url_check() reports all URLs reachable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
devtools::spell_check() was flagging three pre-existing British
spellings in NEWS.md that landed via PRs #166 (idCohorts vectorize)
and #167 (my_scale vectorize) because the per-PR gate I'd been
running on those PRs only used `devtools::check(args = "--as-cran")`
and not also `devtools::spell_check()` -- a gap that a future agent
won't have, since PR #175 documents the full per-PR gate in AGENTS.md.

Conversions to the package's US-English convention:
- "Vectorised" -> "Vectorized" (NEWS.md:7)
- "behaviour" -> "behavior" (NEWS.md:13)
- "lex-sorted" -> "lexicographically-sorted" (NEWS.md:15)
- "randomised" -> "randomized" (NEWS.md:34)

devtools::spell_check() now reports "No spelling errors found".
CRAN gate: 0 errors / 0 warnings / 0 notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gregfaletto gregfaletto changed the title Reference .workflow/ ExecPlan workflow from AGENTS.md and catalog the workflow docs Document the .workflow/ workflow in AGENTS.md + fix three pre-existing British spellings in NEWS.md May 29, 2026
gregfaletto added a commit that referenced this pull request May 29, 2026
…DLIST, test trim

Round-1 review converged on five action items (one sentinel BLOCKER + four
reviewer robustness/cosmetic items). Round-2 commit applies the four items
that touch tracked files; PLAN.md prose corrections and PR description
draft live in .plans/ (gitignored).

(Sentinel BLOCKER, Check 1.) Extracted
.resolve_event_study_offsets_and_first_inds(x, R, T) as a private internal
helper near the top of R/event_study.R. Both private dispatchers
(.event_study_etwfe_betwfe at the etwfe/betwfe entry and
.event_study_fetwfe at the fetwfe entry) previously contained a
byte-identical 10-line offset-resolution block (verified by `diff`
returning empty). They now use a 3-line unpack of the helper's return.
Same drift-risk profile as the v1.9.5 #56 item 1 incident
(mask expression copy-pasted between two event-study sites; only one
updated on a later fix); the helper parks the fall-back contract in one
place so future changes (e.g., a "cohort_probs names are factor levels"
branch) land atomically.

(Reviewer §3.3, robustness.) Removed the no-op bare `bacondecomp::divorce`
reference at tests/testthat/test-event-study-present-in-print-summary-174.R:68.
The next-line `data(divorce, package = "bacondecomp")` is the canonical
bind; the bare reference forced lazy-data evaluation but did nothing with
the value.

(Reviewer §4.1, cosmetic.) Added five PR-introduced tokens to
inst/WORDLIST: getFirstInds, inds, len, prepXints, tryCatch. The Greek-
letters block at the top is preserved; the rest is alphabetically sorted
case-insensitively. devtools::spell_check() now flags only the three
pre-existing British spellings (behaviour, lex, randomised) which are
PR #175's territory.

Validation:
- _R_CHECK_SYSTEM_CLOCK_=false devtools::check(args = "--as-cran"): 0/0/0
- devtools::test(): FAIL 0 / WARN 0 / PASS 2456
- devtools::document() idempotent
- urlchecker::url_check() clean
- Both new test files
  (test-event-study-no-silent-swallow-174.R and
  test-event-study-present-in-print-summary-174.R) pass byte-equivalently
  after the helper extraction, verifying the dispatcher behavior is
  unchanged.
- Round-2 drift sentinel returned Verdict: CLEAN.
- Round-2 post-execution reviewer returned LGTM, ready for Greg's review.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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