Skip to content

Add .obvious/ agent contract from local dev onboarding - #37

Open
obvious-autobuild-staging[bot] wants to merge 1 commit into
masterfrom
obvious/setup-local-dev
Open

Add .obvious/ agent contract from local dev onboarding#37
obvious-autobuild-staging[bot] wants to merge 1 commit into
masterfrom
obvious/setup-local-dev

Conversation

@obvious-autobuild-staging

Copy link
Copy Markdown

Obvious onboarding — .obvious/ contract

Automated onboarding run. Local dev was brought up and verified end-to-end in a sandbox; this PR adds the resulting agent contract. No application code was touched.

Files generated

  • .obvious/obvious.md — top-level agent guide: stack matrix, per-app commands, Local Verification Summary, snapshot info, known limitations
  • .obvious/codebase-map.md — folder-level map (depth 2, single table)
  • .obvious/config.yml — repo policy auto-detected from GitHub settings (default branch master; merge/squash/rebase all enabled → squash chosen; deleteBranchOnMerge: false)
  • .obvious/skills/local-dev/SKILL.md — durable local-dev record: bring-up sequence, verification checklist, gotchas

Source files scanned

All 30 tracked files across the three apps: manifests (S3-upload/package.json, mongodb-schema-importer/package.json, vue-demo/package.json), all three READMEs, entrypoints (S3-upload/index.js, mongodb-schema-importer/index.js, vue-demo/src/main.js), views/components (views/index.ejs ×2, App.vue, Welcome.vue), schema/config modules (schemas.js, configFromSchema.js), env template (env.example.js), static assets, and per-app .gitignore files. No root manifest, no root AGENTS.md, no CI configs exist.

Local dev validation result

dev_stack_healthy: true — all three demo apps run:

App Evidence
mongodb-schema-importer mongod 4.4.29 up on :28015 (npm run mongod); GET /populate-defaults → 200 "Inserted 4 Robots"; GET / → 200 with DB-derived importer fields (name, nick, helmet, color, id) plus Mongoose Robot schema config (6 fields)
S3-upload npm start with dummy AWS env credentials → GET / 200, page renders a presigned S3 putObject URL
vue-demo yarn serve (needs NODE_OPTIONS=--openssl-legacy-provider on Node ≥ 17) → compiled successfully, HTTP 200 on :8080, HMR active; yarn lintno lint errors

Playwright Chromium screenshots captured for all three apps; console inspected (apps boot cleanly; the Flatfile widget iframe is refused without a real license, as expected). Full details in .obvious/obvious.md → "Local Verification Summary".

Notable fix during bring-up: MongoDB 8.x rejects this repo's pinned mongodb@~3.0.8 driver (legacy OP_QUERY wire protocol) — the app crashes on /populate-defaults. mongod 4.4.29 is installed in the sandbox instead and the constraint is documented in the contract.

Sandbox snapshot

  • Snapshot ID: gap0pvit10wten6lqhs1:default (sandbox i517zqa9z31yfh4v3rhj1)
  • Captured: 2026-08-24T21:29:58.777Z
  • State: deps installed for all three apps; gitignored local configs created (mongodb-schema-importer/.env.js, vue-demo/env.js); mongod 4.4.29 running with seeded robots collection; mongodb-schema-importer live on :9000 and vue-demo on :8080; git tree clean.

Blockers

None. Notes (not blockers): the in-browser Flatfile importer widget requires a real Flatfile license key (external SaaS) and real S3 uploads require real AWS credentials — all server-side and page-render flows were verified with safe placeholder values.

Explicit omissions

  • None of the contract files were omitted — the repo was not empty, so all four files (obvious.md, codebase-map.md, config.yml, skills/local-dev/SKILL.md) are included.
  • No .obvious/tools/, no .obvious/system-prompt.md, no root AGENTS.md created or modified; no .obvious-install/ staged.
  • The only TODO(confirm) in the contract: obtaining a real Flatfile license key to exercise the full in-browser import flow.

Local dev verified end-to-end in sandbox: all three demo apps run
(mongod 4.4 + mongodb-schema-importer, S3-upload, vue-demo), lint
passes, screenshots captured. Snapshot gap0pvit10wten6lqhs1:default.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant