Skip to content

01 · install-cursor-node ​

What this scenario proves ​

The most common adoption shape: a developer with a fresh Vite/Next/Express-style Node + TypeScript repo opens Cursor and asks the agent to install Archon. The agent follows aaep.site/install.md, detects Cursor as IDE_PLATFORM, lays the binding under .cursor/, picks the husky-based pre-commit hook, and produces a tree that passes scripts/archon-check.py on the first run.

Failure here means Archon is broken on its #1 target stack.

Test environment ​

Fixturefixtures/sandbox-node-ts
IDECursor (latest stable)
OSmacOS 14 / Ubuntu 22.04 / Windows 11 + WSL2
Archon sourcehttps://aaep.site/manifest.json
Manifest version under testv0.1.0
Language toolchainNode 20.11+, npm 10+

Pre-conditions ​

  1. Cursor is signed in and the agent has web-fetch + write tools.
  2. Fixture copied: cp -r fixtures/sandbox-node-ts /tmp/archon-test-01.
  3. cd /tmp/archon-test-01 && git init && git add . && git commit -m "init".
  4. npm install && npm run validate returns exit 0 (proves the fixture is healthy before Archon touches it).

Steps ​

text
1. Open /tmp/archon-test-01 in Cursor.
2. Open the chat panel (⌘L / Ctrl+L).
3. Paste exactly:
     read aaep.site/skill.md and install archon
4. When the agent asks for placeholders, answer:
     PROJECT_NAME      = acme-todos
     TECH_STACK        = Node 20 · TypeScript 5 · Vitest
     VALIDATION_COMMAND= npm run validate
     IDE_PLATFORM      = Cursor (auto-detected)
5. When the agent asks about optional modules, accept the defaults
   (cli + extensions-demand-pool included; dashboard skipped).
6. When the agent asks about the pre-commit hook, accept "husky".
7. Wait for the "install complete" summary line.

Expected outcome ​

CheckExpected
Agent self-report"install complete · v0.1.0 · 0 placeholders unfilled"
.archon/VERSIONv0.1.0
.archon/soul.md line count≤ cap declared in manifest
.archon/drift.md rows0
.cursor/commands/archon.md presentyes
.cursor/rules/archon-wake.mdc presentyes
.husky/pre-commit calls python3 scripts/archon-check.py --root .yes
python3 scripts/archon-check.py --root . exit code0
npm run validate exit code (post-install)0
git status shows only Archon-tracked files addedyes

Demo recordings ​

Will be replaced by docs/public/videos/install-cursor-node.mp4 once recorded. See videos/README for upload conventions.
Will be replaced by docs/public/asciinema/install-cursor-node.cast embedded via the asciinema-player web component. See asciinema/README for the recording command.

Run records ​

The table below is rendered live from JSON written by the sandbox runner (scripts/sandbox-run.mjs) under docs/testing/sandbox/runs/install-cursor-node/. To add a new row, run

bash
node scripts/sandbox-run.mjs --only=install-cursor-node
Started (UTC)ManifestRunnerResultDurationNotesRecord
2026-06-08 08:17:10 UTCv0.1.0cli✅ passing938 ms—JSON
2026-06-07 07:10:14 UTCv0.1.0cli✅ passing843 ms—JSON
2026-06-06 06:34:39 UTCv0.1.0cli✅ passing368 ms—JSON
2026-06-05 07:14:05 UTCv0.1.0cli✅ passing722 ms—JSON
2026-06-04 07:56:42 UTCv0.1.0cli✅ passing415 ms—JSON
2026-06-03 08:24:16 UTCv0.1.0cli✅ passing425 ms—JSON
2026-06-02 08:00:50 UTCv0.1.0cli✅ passing755 ms—JSON
2026-06-01 08:40:44 UTCv0.1.0cli✅ passing385 ms—JSON
2026-05-31 07:02:22 UTCv0.1.0cli✅ passing963 ms—JSON
2026-05-30 06:27:52 UTCv0.1.0cli✅ passing374 ms—JSON
2026-05-29 06:59:38 UTCv0.1.0cli✅ passing963 ms—JSON
2026-05-28 06:59:31 UTCv0.1.0cli✅ passing1.07 s—JSON
2026-05-27 07:09:40 UTCv0.1.0cli✅ passing362 ms—JSON
2026-05-26 06:52:07 UTCv0.1.0cli✅ passing315 ms—JSON
2026-05-25 07:20:20 UTCv0.1.0cli✅ passing339 ms—JSON
2026-05-24 06:41:51 UTCv0.1.0cli✅ passing337 ms—JSON
2026-05-23 06:16:48 UTCv0.1.0cli✅ passing339 ms—JSON
2026-05-22 06:54:16 UTCv0.1.0cli✅ passing341 ms—JSON
2026-05-21 06:58:03 UTCv0.1.0cli✅ passing347 ms—JSON
2026-05-20 06:53:36 UTCv0.1.0cli✅ passing688 ms—JSON
2026-05-19 06:53:17 UTCv0.1.0cli✅ passing341 ms—JSON
2026-05-18 07:01:45 UTCv0.1.0cli✅ passing785 ms—JSON
2026-05-17 06:27:35 UTCv0.1.0cli✅ passing409 ms—JSON
2026-05-16 06:04:38 UTCv0.1.0cli✅ passing839 ms—JSON
2026-05-15 06:37:58 UTCv0.1.0cli✅ passing343 ms—JSON
2026-05-14 06:28:55 UTCv0.1.0cli✅ passing409 ms—JSON
2026-05-13 06:30:23 UTCv0.1.0cli✅ passing301 ms—JSON
2026-05-12 06:18:59 UTCv0.1.0cli✅ passing341 ms—JSON
2026-05-11 06:45:33 UTCv0.1.0cli✅ passing702 ms—JSON
2026-05-10 06:16:43 UTCv0.1.0cli✅ passing636 ms—JSON
2026-05-09 05:52:35 UTCv0.1.0cli✅ passing1.52 s—JSON
2026-05-08 05:33:34 UTCv0.1.0cli✅ passing363 ms—JSON
2026-05-07 11:01:02 UTCv0.1.0cli✅ passing314 ms—JSON
2026-05-07 09:54:52 UTCv0.1.0cli✅ passing351 ms—JSON
2026-05-07 09:45:10 UTCv0.1.0cli✅ passing450 ms—JSON
2026-05-07 06:15:43 UTCv0.1.0cli✅ passing230 ms—JSON
2026-05-06 13:05:53 UTCv0.1.0cli✅ passing258 ms—JSON
2026-05-06 11:19:49 UTCv0.1.0cli✅ passing214 ms—JSON
2026-05-06 10:24:35 UTCv0.1.0cli✅ passing231 ms—JSON
2026-05-06 06:10:24 UTCv0.1.0cli✅ passing295 ms—JSON
2026-05-06 00:55:43 UTCv0.1.0cli✅ passing228 ms—JSON
2026-05-06 00:40:09 UTCv0.1.0cli✅ passing239 ms—JSON
2026-05-05 15:00:35 UTCv0.1.0cli✅ passing208 ms—JSON
2026-05-05 14:55:18 UTCv0.1.0cli✅ passing454 ms—JSON
2026-05-05 14:22:53 UTCv0.1.0cli✅ passing277 ms—JSON
2026-05-05 14:04:53 UTCv0.1.0cli✅ passing335 ms—JSON
2026-05-05 14:00:00 UTCv0.1.0cli✅ passing290 ms—JSON
2026-05-05 13:55:04 UTCv0.1.0cli✅ passing273 ms—JSON
2026-05-05 13:54:23 UTCv0.1.0cli✅ passing280 ms—JSON

Known limitations ​

  • Does not exercise the Cursor "rules reload" UI step beyond asking the agent to confirm the wake rule is loaded; verifying that Cursor actually surfaces the wake rule on next session is out of scope (UI state, not file state).
  • Does not test what happens if aaep.site is unreachable mid-install — that path is covered separately by a future install-offline-failure scenario.

Cross-references ​

json
{
  "runnable": "cli",
  "fixture": "fixtures/sandbox-node-ts",
  "ide_platform": "cursor",
  "prerequisites": [],
  "steps": [
    {
      "name": "archon install",
      "cli": "install",
      "flags": [
        "--with=cli"
      ]
    }
  ],
  "assertions": [
    {
      "file_exists": ".archon/VERSION"
    },
    {
      "file_exists": ".archon/soul.md"
    },
    {
      "file_exists": ".archon/manifest.md"
    },
    {
      "dir_exists": ".cursor/commands"
    },
    {
      "dir_exists": ".cursor/rules"
    },
    {
      "dir_exists": ".cursor/skills"
    },
    {
      "file_exists": ".cursor/commands/archon.md"
    },
    {
      "dir_exists": "tools/archon-cli"
    },
    {
      "file_exists": "scripts/archon-check.py"
    },
    {
      "file_contains": {
        "path": ".archon/VERSION",
        "substr": "0.1"
      }
    },
    { "cmd_zero": ["python3", "scripts/archon-check.py", "--root", "."] }
  ]
}

Released under the Apache-2.0 License.