Authored living-doc input checked before merge and while typing
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 12/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- github-actions, python, typescript, vscode
- Domain
- ci-cd, developer-experience, devtools, tooling
Research direction
This is a multi-repository design epic with owner decisions still open (repository names, fail-or-warn per code, issue-body checking, language server scope, publisher), so start by reading the owner-call list rather than code. The relevant files are tests/examples/examples_check.py in living-doc, docs/reference/authoring-formats.md (§ Indentation, § Required fields), and living-doc-utilities docs/authoring/parsers.md, normalisation.md and errors.md. Done means the owner calls are answered and the first child issue for living-doc-check exists.
Written by the indexing model from the issue text.
Description
Background
The parsers in living-doc-utilities are lenient by design: a line they cannot place becomes a warning
(MISINDENTED_LINE, UNPARSED_AC_LINE, UNPARSED_BULLET_LINE, MALFORMED_AC, …), not a failure. Those warnings
appear only in a collector run's output after the merge, where nobody reads them at PR time. The fixes normalize()
applies in memory (changes) never reach the author. The only strict check is living-doc's corpus checker
(tests/examples/examples_check.py), which runs over this repository's own examples and keeps its own lists of
required keys (REQUIRED_FEATURE_KEYS, REQUIRED_PO_KEYS_FULL, REQUIRED_PO_KEYS_XREF).
One known shape already needs a check above the parser. A PageObject comment opened by a bare /*, with its === rule
on the next line, comes back as MISSING_ENTITY_ID ("banner carries no title line") although it has a title. The
canon's § Indentation calls the title "the first line after the opening rule", which for that shape points at the line
the parser does not take.
Goals
- One engine: a
living-doc-checkcommand inliving-doc-utilitiesthat runsnormalizeand the matching parser
over given files and reports each warning with file, line and code. It fails on errors, on the codes the owner lists
and on a missing required key, read from one table the corpus checker uses too. - Before merge: a GitHub Action, in a new repository, that runs the command over the living-doc input a pull
request changes. It fails or warns per code and offerschangesas suggested fixes. Issue bodies are checked by an
issue-event workflow, since an issue edit is not in a PR. - While typing: a VS Code extension, in a new repository. It completes header templates from the canon, shows the
same warnings as live diagnostics, and offerschangesas quick fixes. It drives the author's own
living-doc-utilitiesthrough a process or language server; it never reimplements the rules in TypeScript. - The three can never disagree, because they run one command.
Subtasks
In landing order. Owner calls come first: the two repository names, fail or warn per code, how issue bodies are
checked, a full language server or completion only, and who publishes the extension under AbsaOSS.
-
living-doc-utilities: theliving-doc-checkcommand and the required-keys table (tech-debt issue, a child). -
living-doc: the corpus checker reads the required-keys table instead of its own lists. -
living-doccanon: the bare/*PageObject shape converted or rejected above the parser, and § Indentation
saying that the opening line carries the rule. - New repository: the pull-request check action, with the issue-event workflow; README, tests and the fleet's
repository conventions. - New repository: the VS Code extension, published to the marketplace.
-
living-docagentic layer:migrate_pageobject_headers.pyaccepts the settled shapes (tech-debt issue, a
child), and the skills run their drafts through the command. -
living-doc: a guide page, "Check your living-doc input", with the action's workflow and the extension.
Related / References
docs/reference/authoring-formats.md§ Indentation and § Required fields;tests/examples/examples_check.py.living-doc-utilitiesdocs/authoring/parsers.md,docs/authoring/normalisation.md,docs/contracts/errors.md.- Related issues: the keyword name a tag carries is not checked (
living-doc-utilities); a template repository for new
living-doc-*repositories (living-doc).
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 6h 14m
- Merged PRs (30d)
- 27
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AbsaOSS/living-doc
-
type:tech-debt
Difficulty 1/5 Under an hour Newbie friendliness 78/100
AbsaOSS/living-doc#133 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 1/5 1-3 hours Newbie friendliness 85/100
AbsaOSS/living-doc#130 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
AbsaOSS/living-doc#129 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AbsaOSS/living-doc#119 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 5/5 Over a week Newbie friendliness 5/100
AbsaOSS/living-doc#136 ·
Maintainers usually reply within 1 day
All issues in AbsaOSS/living-doc
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
deepchem/deepchem#5289 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
UKGovernmentBEIS/inspect_evals#2892 · 1 comment ·
Maintainers usually reply within 1 day
-
Versioning docs: say that no output from the 0.46 warning check means nothing is affectedPossibly taken @grelinfo claimed this today. Opendocumentation priority:low size:S
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
alphacrack/readme2demo#293 ·