Skip to content

Feat/onboarding - #36

Merged
ganlincoder merged 12 commits into
mainfrom
feat/onboarding
Jul 8, 2026
Merged

Feat/onboarding#36
ganlincoder merged 12 commits into
mainfrom
feat/onboarding

Conversation

@ganlincoder

Copy link
Copy Markdown
Collaborator

No description provided.

ganlincoder and others added 12 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.
Align SearchCLI request payloads with console V2 proto renames:
- GetInferDatasetSchemaResultReqV2: TaskID -> TaskId (3 call sites)
- CreateDatasetReqV2.ProcessConfig: VideoAutoDeletePolicy (string) ->
  VideoAutoDelete (bool), including the oclif/standalone flag and help

Add .pkg-cache/ to .gitignore so the local pkg build cache is untracked.
Add .idea/ to .gitignore.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants