Skip to content

Commit e4744c7

Browse files
committed
feat: Ship v1.0. Enhance architecture agent/skill, update roadmap, and add CI tests
Refactor the Claude `architecture` agent and skill definitions to include formal metadata, detailed behavior, and explicit constraints, improving clarity and functionality. Update the project roadmap to reflect completed milestones and expand descriptions for future versions, specifically noting the progression from 7 to 12 agents, new deploy automation, and MCP integrations. Integrate `pnpm test` into the CI workflow to ensure continuous testing and maintain code quality. This update also includes related dependency additions in `pnpm-lock.yaml` to support testing infrastructure.
1 parent 6d4f311 commit e4744c7

62 files changed

Lines changed: 6655 additions & 40 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/agents/architecture.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
---
2+
name: architecture
3+
description: Knowledge-only Q&A about the AppAtelier codebase. Answers questions about routing, packages, manifests, database, auth, and PWA setup. Never writes or modifies code.
4+
model: sonnet
5+
tools:
6+
- Read
7+
- Glob
8+
- Grep
9+
---
10+
111
# Architecture Agent
212

313
You are a knowledge-only architecture agent for AppAtelier. You understand the full codebase and can answer questions about it.

.claude/skills/architecture.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,34 @@
11
# /architecture skill
22

3-
**Trigger**: `/architecture`
3+
**Trigger**: `/architecture [question]`
44

5-
**Description**: Knowledge-only Q&A about the AppAtelier codebase architecture.
5+
**Description**: Knowledge-only Q&A about the AppAtelier codebase architecture. Delegates to the `architecture` sub-agent.
66

7-
**Behavior**:
8-
- Answer questions about how AppAtelier works: routing, packages, manifests, database, auth, PWA setup
9-
- Reference specific files and patterns
10-
- Do NOT write or modify code
11-
- Do NOT make recommendations that would change the architecture without user approval
7+
---
8+
9+
## Behavior
10+
11+
1. If the user provided a question after `/architecture`, pass it directly to the agent.
12+
If not, ask: "What would you like to know about the AppAtelier architecture?"
13+
14+
2. Invoke the `architecture` agent with the question and this context:
15+
> "Answer this architecture question about the AppAtelier codebase. Read only — do not write or modify any files."
16+
17+
3. Show the agent's full response.
18+
19+
---
20+
21+
## Examples
1222

13-
**Examples**:
1423
- "How does subdomain routing work?"
1524
- "Where do I add a new app?"
1625
- "Why does every table need a prefix?"
1726
- "How is auth wired up?"
27+
- "What's the difference between `app/apps/` and `apps/`?"
28+
29+
---
30+
31+
## Constraints
32+
33+
- The `architecture` agent is read-only — it never writes or modifies code
34+
- Do not make architectural recommendations that would change the codebase without user approval
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Bug Report
2+
description: Something isn't working as expected
3+
labels: ["bug"]
4+
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug. Fill in as much detail as you can — it makes fixing faster.
10+
11+
- type: dropdown
12+
id: affected
13+
attributes:
14+
label: Affected app or package
15+
description: Which part of AppAtelier is affected?
16+
options:
17+
- "@hub/core"
18+
- "@hub/pwa"
19+
- "@hub/db"
20+
- "@hub/auth"
21+
- "@hub/ui"
22+
- "hub (launcher)"
23+
- "notes (example app)"
24+
- "tasks (example app)"
25+
- "habits (example app)"
26+
- "daily-briefing (example app)"
27+
- "doctor script"
28+
- "new-app script"
29+
- "AI studio (agents/skills)"
30+
- "other"
31+
validations:
32+
required: true
33+
34+
- type: textarea
35+
id: steps
36+
attributes:
37+
label: Steps to reproduce
38+
description: What did you do to trigger this bug?
39+
placeholder: |
40+
1. Run `pnpm dev`
41+
2. Navigate to notes.localhost:3000
42+
3. Click "New note"
43+
4. See error
44+
validations:
45+
required: true
46+
47+
- type: textarea
48+
id: expected
49+
attributes:
50+
label: Expected behavior
51+
description: What should have happened?
52+
validations:
53+
required: true
54+
55+
- type: textarea
56+
id: actual
57+
attributes:
58+
label: Actual behavior
59+
description: What happened instead?
60+
validations:
61+
required: true
62+
63+
- type: textarea
64+
id: environment
65+
attributes:
66+
label: Environment
67+
description: Fill in your environment details.
68+
value: |
69+
- Node version:
70+
- pnpm version:
71+
- OS:
72+
- DB adapter (DB_ADAPTER env var):
73+
- Deploy target (local / Vercel / self-hosted):
74+
validations:
75+
required: true
76+
77+
- type: textarea
78+
id: logs
79+
attributes:
80+
label: Relevant logs or error output
81+
description: Paste any terminal output, browser console errors, or stack traces. This field is optional but very helpful.
82+
render: shell
83+
validations:
84+
required: false
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Feature Request
2+
description: Suggest an idea or improvement
3+
labels: ["enhancement"]
4+
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Before suggesting a feature, please check the [Explicitly out of scope](https://github.com/smariconde/app_atelier/blob/main/ROADMAP.md#-explicitly-out-of-scope) section in ROADMAP.md. Requests that fall into that list will be closed without further discussion.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem or use case
15+
description: What are you trying to do? What's the friction you're hitting? Describe the real situation, not just the desired feature.
16+
placeholder: "When I try to ... I find that ..."
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed solution
24+
description: How do you think this should work? Be as concrete as you can.
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives you've considered
32+
description: Have you tried working around this in another way? Are there existing tools that solve part of the problem?
33+
validations:
34+
required: false
35+
36+
- type: checkboxes
37+
id: scope_check
38+
attributes:
39+
label: Scope check
40+
description: Please confirm you've reviewed what's out of scope before submitting.
41+
options:
42+
- label: I have read the [Explicitly out of scope](https://github.com/smariconde/app_atelier/blob/main/ROADMAP.md#-explicitly-out-of-scope) section in ROADMAP.md and this request does not fall into that list.
43+
required: true
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: New Example App
2+
description: Share an app you built with AppAtelier
3+
labels: ["example-app"]
4+
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Sharing an app you've built is one of the most valuable contributions to the project. Example apps show other people what the paradigm enables and give them starting points for their own builds.
10+
11+
If you have a working implementation, open a PR alongside this issue — link it in the last field below.
12+
13+
- type: input
14+
id: app_name
15+
attributes:
16+
label: App name and one-line description
17+
description: What's the app called and what does it do in one sentence?
18+
placeholder: "Reading Log — tracks books I've read with notes, ratings, and a yearly goal"
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: use_case
24+
attributes:
25+
label: What problem does it solve?
26+
description: Describe the real use case. Who is this for (even if that's just you), and what friction does it remove?
27+
placeholder: "I wanted to track what I read without Goodreads's social features or its recommendation engine pushing me toward popular books. This just logs what I've read, lets me add a note, and shows me my yearly goal progress."
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: manifest
33+
attributes:
34+
label: Manifest snippet
35+
description: Paste your `manifest.ts` (or the key parts of it). This helps reviewers understand the app's structure at a glance.
36+
render: typescript
37+
placeholder: |
38+
import { defineManifest } from '@hub/core';
39+
40+
export default defineManifest({
41+
id: 'reading-log',
42+
name: 'Reading Log',
43+
description: 'Track books with ratings and yearly goals',
44+
version: '0.1.0',
45+
46+
icon: 'book-open',
47+
color: '#F59E0B',
48+
subdomain: 'reading',
49+
50+
enabled: true,
51+
status: 'stable',
52+
53+
database: {
54+
schemaPath: './db/schema.ts',
55+
tablePrefix: 'reading_',
56+
migrations: './db/migrations',
57+
},
58+
59+
aiContext: {
60+
description: 'Logs books read with ratings, notes, and yearly reading goals',
61+
domain: 'personal',
62+
examples: [
63+
'Log that I finished Dune, 5 stars',
64+
'How many books have I read this year?',
65+
'Show me my notes on Thinking Fast and Slow',
66+
],
67+
},
68+
});
69+
validations:
70+
required: true
71+
72+
- type: input
73+
id: pr_link
74+
attributes:
75+
label: Pull request link (optional)
76+
description: If you've already opened a PR with the implementation, paste the link here.
77+
placeholder: "https://github.com/smariconde/app_atelier/pull/42"
78+
validations:
79+
required: false

.github/pull_request_template.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Summary
2+
3+
<!-- What does this PR do? Why? Be concise. -->
4+
5+
---
6+
7+
## Type of change
8+
9+
- [ ] New feature (non-breaking change that adds functionality)
10+
- [ ] Bug fix (non-breaking change that fixes an issue)
11+
- [ ] New example app
12+
- [ ] New agent or skill
13+
- [ ] Documentation
14+
- [ ] Refactor (no behavior change)
15+
16+
---
17+
18+
## Checklist
19+
20+
- [ ] `pnpm doctor` passes
21+
- [ ] `pnpm test` passes
22+
- [ ] `pnpm typecheck` passes
23+
- [ ] `pnpm lint` passes
24+
- [ ] Docs updated (if you changed a public API or added a feature)
25+
- [ ] `ROADMAP.md` updated (if this PR delivers a tracked milestone item)

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ jobs:
2222

2323
- run: pnpm lint
2424

25+
- run: pnpm test
26+
2527
- run: pnpm build

0 commit comments

Comments
 (0)