Skip to content

Feat/onboarding#36

Open
ganlincoder wants to merge 9 commits into
mainfrom
feat/onboarding
Open

Feat/onboarding#36
ganlincoder wants to merge 9 commits into
mainfrom
feat/onboarding

Conversation

@ganlincoder

Copy link
Copy Markdown
Collaborator

No description provided.

ganlincoder and others added 9 commits June 26, 2026 14:32
…1 skill

- Add new V2 control-plane commands: `dataset import-url`, `dataset infer-schema`,
  `dataset infer-result`, and `app attach-dataset`; update `dataset create`,
  `dataset ingest`, `app create`, and `app dataset bind` to drive the V2 flow.
- Update product/workflow plumbing (`item-commands`, `product-commands`,
  `workflow-commands`, `console-schema-inference`, `console-file-upload`, `http`)
  to talk to the V2 endpoints and emit snake_case enum wire values.
- Replace the V1 `vs-item-onboarding` and `vs-app-dataset-bind` skills with the
  backend-driven `vs-item-onboarding-v2` skill (presigned upload -> backend
  inference -> persisted artifact -> confirm -> create/write/attach), including
  console hand-off links and readiness reminder.
- Sync all references: 13 README locales, `docs/agent-quick-start.md`,
  `skills/manifest.json`, `vs-user-onboarding`, `vs-product-qa` and its
  delegation matrix, plus regenerated `embedded-repo-skills.ts`.
- Align acceptance harness (`run-acceptance.cjs`) and console schema test to
  the new skill list and V2 contract.
- Introduce v2-onboarding suite covering 4 help, 4 dry-run, 7 mock and 2 pipeline cases for the V2 OpenAPI onboarding flow.
- Add startV2MockServer with control-plane Action routing and data-plane path routing, plus per-suite report grouping and --suite all|core|v2-onboarding|live router.
- Add scripts/suites/v2-onboarding.cjs orchestrator running the 8-step V2 chain (import-url -> upload -> infer-schema -> infer-result -> dataset create -> app create -> attach-dataset -> data write) for items and videos flavors.
- Register V2 command help entries (dataset import-url / infer-schema / infer-result and app attach-dataset) and route attach-dataset --help through printAppCommandHelp.
- Ship V2 onboarding fixtures (items.jsonl, videos.jsonl, infer-result.json, dataset-create.json, attach.json).
- Add npm scripts test:acceptance:v2-mock and test:acceptance:v2-live for CI and on-demand live runs.
- Ignore tmp-acceptance/ acceptance report directory.
- Add `vs dataset infer-result --render-schema` deterministic Stage A renderer (src/core/infer-schema-stage-a.ts) that normalizes the V2 envelope into {summary, fields, roles, warnings} and prints a fixed five-column ASCII table.
- Tolerate field-name drift (Name/FieldName, Type/FieldType), missing Required / BizAttr / Description, and missing or partial DataFieldConfig; surface anomalies (no PK BizAttr, empty IndexFields, role fields not present in schema, missing FieldDescMap entries) as explicit warnings.
- Update vs-item-onboarding-v2 SKILL.md to require the CLI renderer in Stage A and rewrite the confirmation checklist accordingly so agents no longer hand-assemble markdown.
- Add 4 acceptance cases (mixed payload, degenerate schema, no DataFieldConfig, 5x byte-stable rerun) under the v2-onboarding suite; v2-onboarding now runs 21/21 with zero regressions in core/v2-onboarding suites.
CLI render-schema output:
- Switch from ASCII table to real markdown table for fields, so chat UIs render columns correctly without depending on a monospace font.
- Wrap field types in backticks (e.g. `array<string>`); plain `<…>` was being parsed as HTML and silently dropped by chat UIs.
- Split output into four fenced sections (Metadata / Fields (N) / Field Roles / Warnings (N)) for byte-stable structure.
- Wrap the whole block in `<!-- vs-schema-confirm: BEGIN -->` / `<!-- vs-schema-confirm: END -->` markers so the agent has a clear copy-verbatim boundary.
- Keep the Warnings section even when N=0, so users see a consistent shape across runs.

SKILL.md updates for vs-item-onboarding-v2:
- Rename "Stage A" to "Schema Confirmation" everywhere except a single historical reference.
- Replace the loose checklist with an explicit three-part output template (one-line header + verbatim CLI block + one-line confirmation prompt).
- Add MUST / MUST NOT lists to block common agent failure modes: hand-rendering the field table, "see CLI output above" placeholders, dropping the warnings section, and emitting unwrapped `<…>` type names.
- Keep newly added skill text in English only; pre-existing Chinese hand-off block and worked-example fragments untouched.
- Fix xTtBackend resolution: profile-level value was ignored because
  resolveCliDefaults only read the top-level stored entry. Profile schema
  now declares xTtBackend, the resolver prefers profile over root, and
  legacy `x-tt-backend` keys inside each profile are normalized as well.
- Drop the --theme flag from the V2 inference path (dataset infer-schema
  and dataset ingest workflow); CreateDatasetV2.Theme on dataset create
  is kept intact.
- Rework `vs --help` QUICK START so V2 (dataset import-url → infer-schema
  → infer-result → dataset create → data write → app create →
  app attach-dataset) is the primary onboarding entry and V1
  `vs item profile/plan/apply` is shown under "[Deprecated]" instead of
  appearing first.
- Reorder PRODUCT_COMMANDS: dataset moves to the top with a clearer
  description; item is marked deprecated. MORE HELP now points at
  `vs dataset --help` rather than `vs item --help`.
- Harden skills/vs-item-onboarding-v2/SKILL.md:
  - Language Matching now covers thinking / reasoning / planning output
    in addition to user-facing prose; added a Chinese-priority section.
  - Schema Confirmation prompt is no longer English-only; per-language
    templates (Chinese default, English, ja/etc.) are listed inline.
  - New "Do NOT be misled by `vs --help` top-level QUICK START" section
    forbids the agent from falling back to `vs item ...` and pins the
    V2 dataset/app surface as the only legal path.
  - Workflow step 4 spells out Plan directory rules: artifacts must live
    under `./.viking/item-plans/<dataset-name>/`, never `~/.viking/`,
    to avoid sandboxed `EPERM: operation not permitted` errors.
- Rename the schema-confirm renderer module from infer-schema-stage-a.ts
  to infer-schema-confirm.ts and ship the regenerated embedded skill
  snapshot.
- Add `.trae/` and `._agent/` to .gitignore so per-agent workspace state
  stays out of version control.
…m SKILL.md

- Rename skills/vs-item-onboarding-v2 -> skills/vs-item-onboarding; update
  manifest, embedded skills, READMEs, agent quick-start, acceptance, and
  cross-skill references.
- Translate stray Chinese constraint paragraphs in SKILL.md to English while
  preserving the per-language confirmation prompt and hand-off examples.
- Merge the duplicate "Schema Confirmation - Output Contract" section back
  into step 5; collapse the five "Hard constraints" bullets into a single
  paragraph plus an explicit Forbidden list; replace the three-language
  hand-off blocks with one templated block plus a translation table.
- Move the Worked Example bash transcript to references/worked-example.md and
  drop the stale --theme flag from it; SKILL.md keeps a single link to the
  reference.
- Result: SKILL.md shrinks from 383 lines / 33.6 KB to 273 lines / 27.7 KB
  (~18% smaller, ~1.5k fewer tokens per agent turn).
- Add `static hidden = true` to all six V1 item commands (profile, plan,
  review, provision, verify, apply). They remain executable for existing
  scripts but no longer appear in oclif-generated help listings.
- Drop the `item` row and the V1 QUICK START block from `vs --help`.
- Replace the `vs item --help` USAGE dump with a short DEPRECATED notice that
  points users at the V2 `vs dataset` + `vs app` flow.
- Sync docs/COMMANDS.md: remove the V1 item section, add the V2 dataset trio
  (import-url / infer-schema / infer-result), document `dataset create
  --data @dataset-create.json` and `dataset ingest --file --type ...`,
  and add `vs app attach-dataset` next to the legacy `app dataset bind`.
The previous SKILL.md only gave host + region templates and let the agent
pick its own subpath; agents were producing wrong URLs like
`/dataset/detail/<id>` or `/application/detail/<id>`. Pin the exact
subpaths in step 11 so the hand-off block always points to the working
console pages:

- Dataset URL: <base>/home/dataset/<DatasetId>
- App URL:     <base>/app/<AppId>

Same shape on Volc Engine and BytePlus. Also add an explicit negative
example so agents do not invent `/dataset/detail/...` or
`/application/detail/...` subpaths again. Embedded skills regenerated.
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.

2 participants