Skip to content

test: CODEOWNERS auto-request verification - #107

Closed
imulab wants to merge 24 commits into
masterfrom
test/codeowners-verify
Closed

imulab wants to merge 24 commits into
masterfrom
test/codeowners-verify

Conversation

@imulab

@imulab imulab commented May 8, 2026

Copy link
Copy Markdown
Owner

Verifying
CODEOWNERS auto-requests @imulab on /CONTRIBUTING.md edits. Will close without merging.

imulab and others added 24 commits May 7, 2026 17:46
Preserve master branch code as reference under .legacy/ to make room
for next-generation rewrite on the next branch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…Source)

- Add spike/template module with no third-party deps
- user.go.tmpl exercises conditional imports (time/regexp/slices/fmt) via
  template control blocks; struct + nested UserEmail; Validate with required,
  pattern, canonicalValues, and multi-valued primary cardinality branches
- main.go reads the template from disk, renders into bytes.Buffer, runs
  go/format.Source, writes output/user_gen.go
- Output committed for diff comparison against spike/jennifer (audit trail per
  00-RESEARCH.md Pitfall 1)
…AP.md

- Replace scimgen → gen (generator module), scimrt → rt (runtime module)
- Replace scimgen → scim (CLI binary in REQ-CLI-01..04 and ROADMAP Phase 7)
- REQ-REPO-02 now names the modules with their full github.com/imulab/go-scim/{gen,rt} paths
- Append reconciliation footer to REQUIREMENTS.md citing CONTEXT.md overrides
- No requirement IDs added/removed/renamed; v1 count unchanged at 85
- Three numbered hard-prohibition rules (no generic Property/tree, no runtime
  schema interpretation, no IdP accommodation) with rationale and warning signs
- Each rule cites concrete legacy artifact paths (.legacy/pkg/v2/prop/property.go,
  subscriber.go, navigator.go, .legacy/cmd/internal/args/scim.go,
  .legacy/public/schemas/) so the why is visceral
- 'How this is enforced' section names all four levers (PR template, CODEOWNERS,
  lefthook hooks, CI grep mirror) with the verbatim forbidden-symbol regex set
- gen/go.mod and rt/go.mod with module paths github.com/imulab/go-scim/{gen,rt}
  and go 1.25 directive (per CONTEXT.md override of REPO-02 naming)
- gen/doc.go and rt/doc.go placeholder package files so workspace `go build`
  has at least one package per module to compile (Phase 0 Plan 02 deviation:
  go build refuses an empty module under a workspace; fixed inline)
- LICENSE copied byte-for-byte from .legacy/LICENSE (REPO-03)
- .gitignore excludes go.work, go.work.sum, build artifacts (REPO-01)
- README.md with status, modules description, build steps (workspace and
  GOWORK=off), contributing pointer, license — uses
  `go build ./gen/... ./rt/...` because repo root is not itself a module
- pull_request_template.md auto-applies on every new PR; three top-level
  checkboxes self-attest no IdP tolerance, no Resource/Property interface,
  no runtime os.ReadFile schema loading; each links back to CONTRIBUTING.md
  Rule N and PITFALLS.md Pitfall N
- CODEOWNERS pins @imulab for /PROJECT.md, /gen/, /rt/, /.github/, and
  /CONTRIBUTING.md with last-pattern-wins ordering
  (/CONTRIBUTING.md last for highest precedence per GitHub docs)
- No global '* @imulab' fallback — CODEOWNERS surfaces high-stakes paths
  only, not every PR
… AST)

- Add spike/jennifer module requiring github.com/dave/jennifer v1.7.1
- main.go produces the same User + UserEmail + Validate output as
  spike/template using jen.Qual for time/regexp/slices/fmt — Qual()
  auto-tracks each import, no conditional bookkeeping at the call site
- Output committed for diff comparison (audit trail per Pitfall 1)
- Align spike/template output to match spike/jennifer's canonical form
  (UserEmail before User; double-quoted regex literal) so byte-comparison
  modulo the engine-attribution header passes; this is the apples-to-apples
  contract from CONTEXT.md (deviation: Rule 1 — corrected spike/template
  output to match the canonical shape both engines render)
- pre-commit: no-go-work refuses go.work / go.work.sum staging
- pre-commit: forbidden-symbols-source greps {gen,rt}/**/*.go for
  Rule 1 + Rule 2 relapse signatures (see CONTRIBUTING.md)
- pre-commit: forbidden-vendor-names-source greps {gen,rt}/**/*.go
  case-insensitively for Rule 3 vendor list (see CONTRIBUTING.md)
- commit-msg: vendor-names rejects commit messages containing
  Rule 3 vendor names case-insensitively (see CONTRIBUTING.md)
- Regex set verbatim with CI mirror in Plan 02 for parity
- lefthook binary absent on dev machine; CI mirror is security
  boundary per Pitfall 4 in 00-RESEARCH.md
- .github/scripts/forbidden-symbols.sh: single source of truth for
  the four forbidden-symbol regexes (Rules 1, 2, 3 relapse
  signatures and vendor-name list per CONTRIBUTING.md). Excludes
  docs/planning/legacy paths plus documentary mentions in
  CONTRIBUTING.md, lefthook.yml, the workflow itself, and the PR
  template (deviation: plan's exclude list missed PR template;
  added).
- .github/workflows/ci.yml: four jobs (build-workspace,
  build-isolated, forbidden-symbols, commit-msg-lint) on Go 1.25 +
  1.26 matrix using actions/checkout@v4 + actions/setup-go@v6.
  Workspace build uses `go build ./gen/... ./rt/...` not plain
  `./...` because repo root is not a module.

Script exits 0 against current tree.
Targets: workspace, build-workspace, build-isolated, forbidden-symbols,
ci-local (composite), spike (forward-compatible with Plan 03's runner),
clean, help.

`make ci-local` reproduces every CI check locally: workspace build via
`go build ./gen/... ./rt/...`, isolated build with GOWORK=off in each
module, plus forbidden-symbols.sh. Verified to succeed on a clean tree.
- 00-04-SUMMARY.md documents the surgical reconciliation of REQUIREMENTS.md,
  ROADMAP.md, and STACK.md per CONTEXT.md <requirements_overrides>
- STATE.md advanced (Plan 4 of 4 complete in Phase 0; metric recorded)
- ROADMAP.md progress row updated
- REPO-02 marked complete in REQUIREMENTS.md traceability table
- Issues Encountered section in SUMMARY notes that Task 2's STACK.md edits
  were absorbed into Plan 00-01's parallel commit (43bd04d) due to wave-1
  concurrent execution; all changes ARE in git history, only the
  commit-message attribution is misleading
…ook plan

- 00-01-SUMMARY.md: 3 tasks completed atomically; cites legacy artifact
  paths for Plan 02 CI mirror parity; documents the parallel-agent index
  contamination in Task 2 commit (43bd04d) as a process deviation
- STATE.md: bumped progress 25%->50% (2/4 plan summaries on disk),
  Last session updated, three Plan 00-01 decisions added
- ROADMAP.md: Phase 0 plan-progress 2/4
- REQUIREMENTS.md: REPO-04 and REPO-05 marked complete in Active list
  and traceability table
- Add 00-03-SUMMARY.md with criterion-by-criterion evidence, line counts
  (template 67 LOC tmpl + 65 LOC runner; jennifer 117 LOC), conditional-
  import bookkeeping count (8 in template; 0 in jennifer with 7 Qual call
  sites), Phase 2 fallback note (imports.Process documented but not
  prototyped), and the cross-agent commit-attribution note for transparency
- Update STATE.md: progress 100%, Phase 0 complete, decisions section gains
  Plan 00-03 entries, Stopped At reflects plan completion
- ROADMAP.md: Phase 0 marked complete (4/4 plans, 2026-05-08) via
  roadmap update-plan-progress
@imulab
imulab force-pushed the test/codeowners-verify branch from 6d4fa9e to 03f36fe Compare May 8, 2026 04:19
@imulab imulab closed this May 8, 2026
@imulab
imulab deleted the test/codeowners-verify branch May 8, 2026 04:37
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