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 msJSON
2026-06-07 07:10:14 UTCv0.1.0cli✅ passing843 msJSON
2026-06-06 06:34:39 UTCv0.1.0cli✅ passing368 msJSON
2026-06-05 07:14:05 UTCv0.1.0cli✅ passing722 msJSON
2026-06-04 07:56:42 UTCv0.1.0cli✅ passing415 msJSON
2026-06-03 08:24:16 UTCv0.1.0cli✅ passing425 msJSON
2026-06-02 08:00:50 UTCv0.1.0cli✅ passing755 msJSON
2026-06-01 08:40:44 UTCv0.1.0cli✅ passing385 msJSON
2026-05-31 07:02:22 UTCv0.1.0cli✅ passing963 msJSON
2026-05-30 06:27:52 UTCv0.1.0cli✅ passing374 msJSON
2026-05-29 06:59:38 UTCv0.1.0cli✅ passing963 msJSON
2026-05-28 06:59:31 UTCv0.1.0cli✅ passing1.07 sJSON
2026-05-27 07:09:40 UTCv0.1.0cli✅ passing362 msJSON
2026-05-26 06:52:07 UTCv0.1.0cli✅ passing315 msJSON
2026-05-25 07:20:20 UTCv0.1.0cli✅ passing339 msJSON
2026-05-24 06:41:51 UTCv0.1.0cli✅ passing337 msJSON
2026-05-23 06:16:48 UTCv0.1.0cli✅ passing339 msJSON
2026-05-22 06:54:16 UTCv0.1.0cli✅ passing341 msJSON
2026-05-21 06:58:03 UTCv0.1.0cli✅ passing347 msJSON
2026-05-20 06:53:36 UTCv0.1.0cli✅ passing688 msJSON
2026-05-19 06:53:17 UTCv0.1.0cli✅ passing341 msJSON
2026-05-18 07:01:45 UTCv0.1.0cli✅ passing785 msJSON
2026-05-17 06:27:35 UTCv0.1.0cli✅ passing409 msJSON
2026-05-16 06:04:38 UTCv0.1.0cli✅ passing839 msJSON
2026-05-15 06:37:58 UTCv0.1.0cli✅ passing343 msJSON
2026-05-14 06:28:55 UTCv0.1.0cli✅ passing409 msJSON
2026-05-13 06:30:23 UTCv0.1.0cli✅ passing301 msJSON
2026-05-12 06:18:59 UTCv0.1.0cli✅ passing341 msJSON
2026-05-11 06:45:33 UTCv0.1.0cli✅ passing702 msJSON
2026-05-10 06:16:43 UTCv0.1.0cli✅ passing636 msJSON
2026-05-09 05:52:35 UTCv0.1.0cli✅ passing1.52 sJSON
2026-05-08 05:33:34 UTCv0.1.0cli✅ passing363 msJSON
2026-05-07 11:01:02 UTCv0.1.0cli✅ passing314 msJSON
2026-05-07 09:54:52 UTCv0.1.0cli✅ passing351 msJSON
2026-05-07 09:45:10 UTCv0.1.0cli✅ passing450 msJSON
2026-05-07 06:15:43 UTCv0.1.0cli✅ passing230 msJSON
2026-05-06 13:05:53 UTCv0.1.0cli✅ passing258 msJSON
2026-05-06 11:19:49 UTCv0.1.0cli✅ passing214 msJSON
2026-05-06 10:24:35 UTCv0.1.0cli✅ passing231 msJSON
2026-05-06 06:10:24 UTCv0.1.0cli✅ passing295 msJSON
2026-05-06 00:55:43 UTCv0.1.0cli✅ passing228 msJSON
2026-05-06 00:40:09 UTCv0.1.0cli✅ passing239 msJSON
2026-05-05 15:00:35 UTCv0.1.0cli✅ passing208 msJSON
2026-05-05 14:55:18 UTCv0.1.0cli✅ passing454 msJSON
2026-05-05 14:22:53 UTCv0.1.0cli✅ passing277 msJSON
2026-05-05 14:04:53 UTCv0.1.0cli✅ passing335 msJSON
2026-05-05 14:00:00 UTCv0.1.0cli✅ passing290 msJSON
2026-05-05 13:55:04 UTCv0.1.0cli✅ passing273 msJSON
2026-05-05 13:54:23 UTCv0.1.0cli✅ passing280 msJSON

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.