lablup / lablup/backend.ai-webui
[bai-agent] `mappings/pages/*.yaml` curation layer with doctor coverage ratchet
- Dominant language
- TypeScript
- Stars
- 133
- Forks
- 81
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 355
Description
## Parent
FR-3740 — step E. Layer B (curated) of the page→feature map. One curation home only: the CLI's existing `mappings/` (ajv + yaml, `resolveDocsRef`, doctor coverage reporting already live there). Do not add a second registry under `react/`.
## What to build
- `packages/backend.ai-agent-cli/mappings/pages/.yaml`, one file per sidebar page, entries keyed by map id (step C). Fields: `meaning` (≤240 chars, what the page/tab is for), `docs` (docsRef, same `^[a-z0-9][a-z0-9_-]*#…$` pattern as `mappings/.yaml`), `concept` (terminology key), optional `aliases`.
- `mappings/pages/schema.json` validated by the existing ajv machinery.
- Seed: the ~18 sidebar pages and the 24 labelled tabs; docs refs taken from the data module of step A (do not hand-copy — read it).
- `doctor --pages` group: schema validation, every id exists in `webui-map.json`, every docs ref resolves, `webui-map.ids.txt` snapshot diff (removed id → fail, new id → warn), and a **coverage ratchet**: curated-ratio floor stored in the yaml dir, failing when it drops.
## Acceptance criteria
- [ ] `where` / `explain` show `curated` meaning for seeded entries, `MISSING` otherwise.
- [ ] `doctor --pages` fails on an unknown id, a dead docs ref, and a coverage regression.
- [ ] Adding a new page without curation yields `warn`, not `fail`.
## Blocked by
- Steps A, C, D.
JIRA Issue: FR-3777
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the existing packages/backend.ai-agent-cli/mappings/ validation and doctor machinery, then read data from step A before seeding mappings/pages/*.yaml and schema.json. Trace webui-map.json and the existing docs-ref resolver to define the doctor --pages checks. Done means seeded entries appear as curated in where/explain, invalid IDs and dead refs fail, and new uncured pages warn without lowering the stored coverage floor.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, yaml
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100