Skip to content

feedback: v0.4.2 → v0.6.0 upgrade + ADF bootstrap on docs site repo #27

@SmartBrandStrategies

Description

@SmartBrandStrategies

Context

Upgraded @stackbilt/cli from v0.4.2 → v0.6.0 on the stackbilt_docs_v2 repo (Astro static docs site deployed to Cloudflare Workers). This is a non-code documentation workspace — no backend, no React, pure Markdown + Astro.

What we ran

npm install @stackbilt/cli@^0.6.0
charter setup --preset docs --yes
charter adf init
charter adf migrate
charter doctor   # PASS

What went well

  1. Smooth upgrade path. npm install bumped cleanly from 0.4.2 to 0.6.0 with no peer dependency conflicts.
  2. --preset docs worked as expected. Setup correctly applied the docs preset even though auto-detection suggested worker (this repo has a wrangler.toml). The preset-override label in output was clear.
  3. adf init + adf migrate pipeline was seamless. The dry-run preview was excellent — showed exactly which lines would move to which .adf module, with classification labels (CONTEXT [advisory], STAY). Running without --dry-run did exactly what the preview said.
  4. Doctor progression was useful. Going from WARN (missing manifest) → WARN (agent config drift) → PASS gave clear breadcrumbs for what to do next.
  5. CLAUDE.md thin pointer result is clean. The migrated CLAUDE.md correctly retained env-specific git rules (staging, commit workflow) and pointed to .ai/ for everything else. Backup at .pre-adf-migrate.bak was a nice safety net.
  6. Package scripts were auto-synced. charter setup added verify:adf, charter:doctor, charter:adf:bundle and updated charter:setup in package.json without clobbering existing scripts.

Issues & suggestions

1. Thin pointer formatting (minor)

The migrated CLAUDE.md has a small formatting issue — line 10 starts with - ### Staging Rules (list item + heading hybrid). Looks like the STAY-classified section was injected under the ## Environment heading but the original ### heading got prefixed with a stray -. Not a functional issue, but agents parsing the markdown may interpret it oddly.

Suggestion: When retaining STAY sections, preserve original heading hierarchy without adding list markers.

2. Auto-detection doesn't distinguish "deploys to Workers" from "is a Workers app"

charter setup --detect-only flagged suggestedPreset: "worker" because wrangler.toml exists and hasWorker: true. But this is a static Astro site that happens to deploy via Wrangler — it's not a Workers application. The --preset docs override worked fine, but the detection could be smarter.

Suggestion: If wrangler.toml contains assets or [assets] config (static asset serving) and there's no src/index.ts/worker.ts entrypoint, consider suggesting docs or static preset instead of worker.

3. ADF module routing for docs-only repos

The default manifest.adf includes frontend.adf (triggers on React, CSS, UI) and backend.adf (triggers on API, Node, DB). For a pure docs repo, neither trigger set is particularly relevant — the repo is all Markdown, Astro components, and Tailwind config. The migration still correctly routed content to these modules (design tokens → frontend.adf, API doc map entries → backend.adf), but the trigger labels feel mismatched.

Suggestion: When using --preset docs, consider generating a content.adf module (triggers on: Markdown, frontmatter, content schema) instead of or alongside frontend.adf/backend.adf. Or at minimum, adjust the trigger labels in the manifest to be docs-relevant.

4. No charter adf bundle output explanation

After setup added the verify:adf and charter:adf:bundle scripts, there was no guidance on when/why to run them or what they produce. The "Next steps" output from adf init mentioned editing .adf files and running adf fmt --check, but didn't mention bundling.

Suggestion: Add a brief note in the setup output or adf init next-steps about what adf bundle does and when to use it.

5. v0.5.0 cross-platform fixes worked transparently on WSL2

The v0.5.0 changelog highlighted WSL/CMD/PowerShell fixes. Running the full bootstrap on WSL2 (Linux 6.6.87.2-microsoft-standard-WSL2) worked without any issues — hook install, doctor, migrate all passed cleanly. Worth noting as a positive data point.

Environment

  • OS: WSL2 (Ubuntu) on Windows
  • Node: v22.x
  • npm: 10.x
  • Charter: 0.4.2 → 0.6.0
  • Repo type: Astro 5.x static docs site, Cloudflare Workers deployment

Summary

Overall a very smooth upgrade. The ADF migration is a significant quality-of-life improvement — CLAUDE.md went from 297 lines of mixed concerns to a 31-line thin pointer. The doctor → init → migrate → doctor workflow felt natural. Main areas for improvement are around docs-preset-specific module naming and detection heuristics for static sites that deploy via Wrangler.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions