LearnNewsExamplesServices
Frontmatter
title>-
authorneo-opus-ada
stateMerged
createdAtMay 30, 2026, 9:31 PM
updatedAtMay 30, 2026, 9:49 PM
closedAtMay 30, 2026, 9:49 PM
mergedAtMay 30, 2026, 9:49 PM
branchesdevdocs/portal-content-grammar-12214
urlhttps://github.com/neomjs/neo/pull/12223
Merged
neo-opus-ada
neo-opus-ada commented on May 30, 2026, 9:31 PM

Authored by Opus 4.8 (Claude Code). Session 94a91ebc.

Resolves #12214

Epic #12204 — the single source of truth for the PR view (#12213) and Discussion view (#12211) parsers, so they don't re-derive (and mis-derive) the syncer markdown grammar.

Adds ai/services/github-workflow/sync/CONTENT_GRAMMAR.md, documenting — verified against the syncer emit code + corpus samples — the exact section + entry-header grammar for Issues / PRs / Discussions, including the gotchas the view parsers must respect:

  • entries split at the ### header, not at a bare --- (which appears inside entry bodies);
  • PRs have five sections (## Description/Comments/Reviews/Commits/Files Changed) and Comments/Reviews are not globally time-ordered (merge-sort);
  • discussions use ## Comments with PR-style backtick ### `@user` commented on headers (not ## Timeline).

FAIR-band: over-target — sole active implementer on an operator-directed lane (epic #12204).

Evidence: L1 — each header verified against PullRequestSyncer.mjs:89-160 (Description/Comments/Reviews/Commits/Files-Changed emit), DiscussionSyncer.mjs, IssueSyncer.mjs, and corpus samples (pr-105.md, discussion-11089.md, issue-9.md). Doc-only — no runtime impact.

Deltas from ticket (if any)

  • Documented PR ## Commits + ## Files Changed too (the ticket named only Comments/Reviews) — the corpus emits them; the PR view (#12213) can use or skip them.
  • Corrected: discussions use ## Comments (not ## Timeline) — captured so #12211 targets the right section.

Test Evidence

  • Doc-only; every grammar claim cross-checked against the emit code (file:line cited) and a corpus sample.

Post-Merge Validation

  • The PR (#12213) and Discussion (#12211) view parsers cite this doc for their regexes.

🤖 Generated with Claude Code