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-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"
      }
    }
  ]
}

Released under the Apache-2.0 License.