lablup / lablup/backend.ai-webui

[bai-agent] `mappings/pages/*.yaml` curation layer with doctor coverage ratchet

Closed
#9,266 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.