Skip to main content

ARC 2.0.0-beta.28

Check, build, and inspect

Run arc blocklet check, build, inspect, and dev with real outputs; treat each command as a different proof.

A green build alone does not prove the application surface. Use a short chain and record what each step actually proves.

Acceptance chain

StepCommandProvesDoes not prove
DSLarc dsl validate <dir>Declared AUP/DSL sources parseRuntime behavior or HTTP 200
Package contractarc blocklet check [dir] --profile <p>Recipe/profile requirements metBrowser layout
Convention scanarc blocklet dev [dir]Detected content type / mounts / index hintsServing
Buildarc blocklet build [dir]dist/ + AFS/flat manifests writtenReaders saw the page
Inspectarc blocklet inspect <dir>Package identity + file list (+ publish status)Correct UX
Local runarc blocklet run / service start --blockletObservable local surfaceRemote deploy health

arc blocklet check

bash
arc blocklet check ./demo-basic
arc blocklet check ./demo-min --profile minimal-app

Profiles accepted by the CLI: basic (default), minimal-app, agent-workspace, support-community.

Verified outputs:

text
Passed blocklet check (basic)
  dir: /…/demo-basic
  AUP pages: (none)
  web sections: 0
  agents: 0
  settings files: 0

Passed blocklet check (minimal-app)
  dir: /…/demo-min
  AUP pages: agent, home, settings
  web sections: 1
  agents: 1
  settings files: 5

arc blocklet validate is an alias for check with validation-focused wording.

Use JSON when scripting:

bash
arc blocklet check ./demo-min --profile minimal-app --json

arc dsl validate (and lint)

bash
arc dsl validate ./demo-min
# Passed DSL validation
#   path: /…/demo-min
#   files: 16

arc dsl lint can report format drift on scaffold output:

text
Failed DSL lint (3 changed)
  ERROR format_changed .aup/app.aup: File is not formatted. Run arc dsl format --write.

Fix with arc dsl format --write <dir> when your gate requires a clean lint. Package check can still pass while lint reports format_changed — they answer different questions.

arc blocklet build

bash
arc blocklet build ./demo-basic
arc blocklet build ./demo-min

Verified:

text
Published 1 file(s) → /…/demo-basic/dist
  .afs/manifest.json  (http-mount protocol)
  blocklet.dist.json  (flat manifest)
  instance: stateless

Published 20 file(s) → /…/demo-min/dist
  .afs/manifest.json  (http-mount protocol)
  blocklet.dist.json  (flat manifest)
  instance: requires /instance DID Space

Options:

FlagDefaultMeaning
--output <dir><dir>/distOutput directory
--dry-runfalseCompute manifest without writing
--cleantrueClean output before write

Do not hand-edit dist/. Do not commit it unless your release process explicitly requires the generated artifact (this site blocklet gitignores dist/ and .web-cache/).

Example .afs/manifest.json fragment after building demo-basic:

json
{
  "afs": "1.0",
  "type": "readonly-tree",
  "files": [
    {
      "path": "blocklet.yaml",
      "size": 107,
      "contentType": "text/yaml",
      "sha256": "aeb371c705d2…"
    }
  ]
}

arc blocklet inspect

bash
arc blocklet inspect ./demo-basic
arc blocklet inspect ./demo-min

Verified shapes:

text
Blocklet: demo-basic (demo-basic)
  path:    /…/demo-basic
  version: 0.1.0
  did:     did:blocklet:demo-basic
  status:  published
  files:   1  (107 bytes)
    blocklet.yaml  (…)

Blocklet: demo-min (demo-min)
  path:    /…/demo-min
  version: 0.1.0
  did:     did:blocklet:demo-min
  status:  published
  files:   20  (4468 bytes)
    .afs/preflight.json
    .aup/app.aup
    …

status: published here means a local dist/ package artifact exists for inspect/list purposes — not that a remote DID Space or Cloudflare deployment succeeded.

arc blocklet dev

bash
arc blocklet dev ./demo-basic
# Blocklet: /…/demo-basic

arc blocklet dev ./demo-min
# Blocklet: /…/demo-min
# Content type: aup
# Index: pages → /
# Mount: agents/app-agent → /agents/app-agent
# Mount: pages → /pages

Treat dev as a directory convention report, not a server.

arc blocklet list

bash
arc blocklet list .

Verified:

text
Blocklets under /…:
  demo-basic v0.1.0  [published]
    path: demo-basic
  demo-min v0.1.0  [unpublished]
    path: demo-min

Status flips after a successful build for that package.

Record one acceptance note

For a change that matters, keep a short record:

  1. arc --version
  2. Exact check profile and result
  3. build file count + instance: line
  4. Local URL and HTTP/browser result
  5. Explicit statement that remote publish was not part of the test (or was, with target)

CLI man page: arc blocklet. Diagnostics patterns: Test and diagnose.