Skip to content

Pin lint + add the verify gate (throwaway-local, no CI) - #2

Merged
chumleesockson merged 1 commit into
mainfrom
add-lint-verify-gate
Jun 27, 2026
Merged

Pin lint + add the verify gate (throwaway-local, no CI)#2
chumleesockson merged 1 commit into
mainfrom
add-lint-verify-gate

Conversation

@chumleesockson

Copy link
Copy Markdown
Owner

Follows the Google whitepapers' "deterministic gate, enforced by the harness, not the agent's goodwill" principle (Day 1 build-verify loop; Day 5 quality gates), adapted to a throwaway local demo with no GitHub repo on the day.

What changed (all spec-level, no app scaffolding)

  • AGENTS.md Stack notes — pin ESLint + typescript-eslint + eslint-plugin-react-hooks on npm run lint. Lint was already a named gate but nothing pinned the linter, the same gap we just closed for the test runner.
  • AGENTS.md How we worknpm run verify (typecheck + lint + test) is now the single gate command, run at every task gate. Documents that the demo intentionally uses no CI and no git hook because the build is a throwaway local project, so verify-at-gate is the enforcement.
  • specs/tasks.md Verify commands — add the verify aggregate, reflect the pinned lint, and fix a stale src/generated/services/* path to match the SDK-agnostic wording already in schema §9.

Decisions captured here

  • Throwaway local build is on-thesis, not a shortcut: "code is disposable, the spec is the asset" (Day 5). The harness is the durable asset; the app repo is discarded.
  • CI dropped — no remote repo, and it never fit the harness repo (which is specs-only) anyway.
  • Git pre-commit hook deliberately not wired — on a live throwaway build the friction (full suite firing mid-flow on stage) outweighs the benefit; the agent running verify at each gate gives the same mechanical check without the risk.

Out of scope by design (Q&A backup, not gaps): observability/traces/cost metering and LLM-as-judge evaluation, both of which exist for generated, non-deterministic agent output. This app has no generative component, so tests are sufficient (the tests-vs-evals split from Day 5).

🤖 Generated with Claude Code

Closes the same "named but unpinned" gap for lint that we closed for
the test runner, and gives the build-verify loop one deterministic
command.

- AGENTS.md Stack notes: pin ESLint + typescript-eslint +
  eslint-plugin-react-hooks on `npm run lint`.
- AGENTS.md How we work: `npm run verify` (typecheck + lint + test) is
  the single gate command, run at every task gate; document that the
  demo uses no CI or git hook because the build is a throwaway local
  project, so verify-at-gate is the enforcement.
- specs/tasks.md Verify commands: add the verify aggregate, reflect the
  pinned lint, and fix the stale src/generated/services/* path to match
  the SDK-agnostic wording already in schema §9.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 27, 2026 08:48
@chumleesockson
chumleesockson merged commit 79fdce8 into main Jun 27, 2026
1 check passed
@chumleesockson
chumleesockson deleted the add-lint-verify-gate branch June 27, 2026 08:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repo’s build/quality “harness” documentation to make a single, deterministic local gate command (npm run verify) the enforcement mechanism (explicitly replacing CI/git hooks for the throwaway demo build) and to document pinned lint tooling.

Changes:

  • Document npm run verify as the single gate command (typecheck + lint + test) in both AGENTS.md and specs/tasks.md.
  • Clarify lint expectations to include ESLint + TypeScript ESLint + React Hooks rules.
  • Update verify-gate guidance to reflect the “no CI / no git hook” throwaway-local demo constraint.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
specs/tasks.md Documents the new “verify” gate command and updates the lint/test gate descriptions.
AGENTS.md Updates “How we work” gates to use npm run verify and adds stack-note guidance for lint pinning.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread specs/tasks.md
Comment on lines +32 to +35
- **Verify (the gate):** `npm run verify` chains typecheck + lint + test. This is the one command run
at each task gate, so the check is mechanical rather than remembered. There is no CI or git hook:
the demo build is a throwaway local project (no GitHub repo on the day), so `verify` at each gate is
the enforcement.
Comment thread specs/tasks.md
Comment on lines +37 to +38
- **Lint:** `npm run lint` returns clean (ESLint + typescript-eslint + react-hooks, AGENTS.md Stack
notes).
Comment thread AGENTS.md
Comment on lines +70 to +73
- **The gate is one command.** `npm run verify` chains typecheck + lint + test so the check is
mechanical, not remembered. Run it at every task gate; `npm run build` runs once before deploy.
There is no CI or git hook: the demo build is a throwaway local project (no GitHub repo on the day),
so `verify` at each gate is the enforcement.
Comment thread AGENTS.md
Comment on lines +87 to +89
- Lint is a named gate, but the template's ESLint setup is minimal or absent. Pin **ESLint +
typescript-eslint + eslint-plugin-react-hooks** on `npm run lint`; the react-hooks rule catches a
class of bug a fast model will produce.
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.

2 participants