Skip to content

Commit 9e2cb80

Browse files
committed
Add new exercise for constraining responses
Introduced a new exercise under '02.product-restraint/02.problem.constrain-the-response' focusing on developing constrained responses to feature requests. This includes the addition of various configuration files, a CLI tool for local development, and a comprehensive README outlining the exercise objectives and requirements. Updated package-lock and tsconfig files to reflect new dependencies and paths, enhancing project organization to support this new exercise.
1 parent ca02a47 commit 9e2cb80

520 files changed

Lines changed: 89720 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Optional (preview uses request origin by default)
2+
APP_BASE_URL=
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Example environment variables for local dev, test, and preview deploys.
2+
# Copy this to `.env` for local development and local tests.
3+
4+
# Optional (preview uses request origin by default)
5+
APP_BASE_URL=
6+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"$schema": "./node_modules/oxlint/configuration_schema.json",
3+
"extends": [
4+
"./node_modules/@epic-web/config/oxlint-config.json",
5+
"./tools/oxlint/oxlint-rules.json"
6+
]
7+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
node_modules
2+
dist
3+
build
4+
.next
5+
.vercel
6+
.netlify
7+
coverage
8+
*.log
9+
.env*
10+
!.env.example
11+
package-lock.json
12+
yarn.lock
13+
pnpm-lock.yaml
14+
**/worker-configuration.d.ts
15+
public/client-entry.js
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# epic-scheduler agent index
2+
3+
Use Node.js v24+ and npm for installs/scripts (`npm install`, `npm run ...`).
4+
5+
## Code style
6+
7+
- Read and follow `docs/agents/code-style.md` before writing code.
8+
- Match the surrounding file style (quotes, semicolons, formatting).
9+
10+
This file is intentionally brief. Detailed instructions live in focused docs:
11+
12+
- Setup, checks, docs maintenance, preview deploys, and seeding:
13+
- [docs/agents/setup.md](./docs/agents/setup.md)
14+
- Code style conventions:
15+
- [docs/agents/code-style.md](./docs/agents/code-style.md)
16+
- Testing guidance:
17+
- [docs/agents/testing-principles.md](./docs/agents/testing-principles.md)
18+
- [docs/agents/end-to-end-testing.md](./docs/agents/end-to-end-testing.md)
19+
- Tooling and framework references:
20+
- [docs/agents/harness-engineering.md](./docs/agents/harness-engineering.md)
21+
- [docs/agents/oxlint-js-plugins.md](./docs/agents/oxlint-js-plugins.md)
22+
- [docs/agents/remix/index.md](./docs/agents/remix/index.md)
23+
- [docs/agents/cloudflare-agents-sdk.md](./docs/agents/cloudflare-agents-sdk.md)
24+
- [docs/agents/mcp-apps-starter-guide.md](./docs/agents/mcp-apps-starter-guide.md)
25+
- Project setup references:
26+
- [docs/getting-started.md](./docs/getting-started.md)
27+
- [docs/environment-variables.md](./docs/environment-variables.md)
28+
- [docs/setup-manifest.md](./docs/setup-manifest.md)
29+
- Architecture references:
30+
- [docs/architecture/index.md](./docs/architecture/index.md)
31+
- [docs/architecture/request-lifecycle.md](./docs/architecture/request-lifecycle.md)
32+
- [docs/architecture/authentication.md](./docs/architecture/authentication.md)
33+
- [docs/architecture/data-storage.md](./docs/architecture/data-storage.md)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Constrain the Response
2+
3+
👨‍💼 You qualified the request and established that a full account system is too
4+
big a response for what the product has actually proven so far.
5+
6+
Now the job is to turn that judgment into a constrained response the team could
7+
actually align around without drifting back into feature momentum.
8+
9+
🐨 Use your existing
10+
<InlineFile file="docs/planning/feature-framing-brief.md" /> to create a dedicated
11+
<InlineFile file="docs/planning/response-constraint-brief.md" /> artifact.
12+
13+
This brief should answer: if the team does anything at all, what is the
14+
narrowest response worth considering right now?
15+
16+
Your brief should cover:
17+
18+
1. The narrow problem you are actually responding to
19+
2. The smallest response worth exploring first
20+
3. Which flows must stay unchanged to protect low friction
21+
4. What complexity you are explicitly refusing for now
22+
5. What cleanup, clarity work, or evidence should come before broader scope
23+
6. A clear recommendation for what the team should do next
24+
7. The success and failure boundaries for this constrained response
25+
26+
Requirements:
27+
28+
- Keep the response grounded in the product's current goals: finalized-plan
29+
rate, low friction, and trustworthy repeat usage.
30+
- Protect the attendee response flow from account or sign-in pressure.
31+
- Avoid turning the create flow into a setup-heavy experience.
32+
- If you recommend a narrower first move, describe it as a product response,
33+
not a full implementation plan.
34+
- Be explicit about what remains deferred, rejected, or still unsupported.
35+
36+
💰 Strong product restraint is not just saying "no" to a big request. It is
37+
saying "yes, if at all, only at this level of scope and for this reason."

0 commit comments

Comments
 (0)