minutework 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/claude-local/CLAUDE.md.template +29 -2
- package/assets/claude-local/skills/README.md +1 -0
- package/assets/claude-local/skills/app-pack-authoring.md +9 -0
- package/assets/claude-local/skills/generated-workspace-architecture.md +10 -0
- package/assets/claude-local/skills/shell-architecture.md +58 -0
- package/package.json +1 -1
|
@@ -13,6 +13,9 @@ Read these exported skills before making MinuteWork-specific architecture
|
|
|
13
13
|
decisions from a generated workspace:
|
|
14
14
|
|
|
15
15
|
- `skills/generated-workspace-architecture.md`
|
|
16
|
+
- `skills/shell-architecture.md` when the request touches member-facing UI,
|
|
17
|
+
operator workflows, threads, channels, cards, dashboards, approvals, or "do
|
|
18
|
+
we need a separate frontend?" questions
|
|
16
19
|
- `skills/runtime-capability-inventory.md`
|
|
17
20
|
- `skills/layering-and-import-modes.md`
|
|
18
21
|
- `skills/capability-gap-reporting.md`
|
|
@@ -23,6 +26,28 @@ decisions from a generated workspace:
|
|
|
23
26
|
- `skills/email-ingress-and-thread-routing.md` when the request touches inboxes,
|
|
24
27
|
aliases, email/SMS/chat routing, or thread-based communication
|
|
25
28
|
|
|
29
|
+
## Shell-First UI Default
|
|
30
|
+
|
|
31
|
+
- For member-facing collaboration and operator work, check shell fit first.
|
|
32
|
+
- The primary collaboration surface is the gateway shell under
|
|
33
|
+
`/w/[workspace_slug]`, not a bespoke standalone tenant frontend.
|
|
34
|
+
- First ask whether the request should be a shell extension:
|
|
35
|
+
- thread metadata
|
|
36
|
+
- cards / attachments in the thread stream
|
|
37
|
+
- agent skills in thread context
|
|
38
|
+
- contextual right-rail detail
|
|
39
|
+
- server-level shared state or catalogs
|
|
40
|
+
- Only propose standalone `tenant-app` UI after explicitly checking shell fit
|
|
41
|
+
and documenting why the request is an exception.
|
|
42
|
+
- If shell fit is correct but the generated workspace cannot directly author the
|
|
43
|
+
needed shell extension, keep the shell-first proposal and record a capability
|
|
44
|
+
gap instead of silently falling back to standalone `tenant-app`.
|
|
45
|
+
- Common exception paths are:
|
|
46
|
+
- public marketing
|
|
47
|
+
- public intake for non-members
|
|
48
|
+
- embeddable widget
|
|
49
|
+
- explicit request for a separate standalone client/app
|
|
50
|
+
|
|
26
51
|
## Starter Choice Matrix
|
|
27
52
|
|
|
28
53
|
The shipped product unit is an `app pack`. `tenant-app` and `sidecar` are
|
|
@@ -30,7 +55,7 @@ implementation surfaces inside that pack.
|
|
|
30
55
|
|
|
31
56
|
| If the request is mainly about... | Choose | Why |
|
|
32
57
|
| --- | --- | --- |
|
|
33
|
-
| Authenticated web UI,
|
|
58
|
+
| Authenticated standalone web UI, separate tenant portal, custom client, or other explicit shell exception | `tenant-app` | This is the Next.js UI/BFF surface after shell fit has been checked. |
|
|
34
59
|
| Public website, pricing, docs, blog, landing pages | `tenant-app` | Public web belongs in the web app surface; do not create a sidecar just to render pages. |
|
|
35
60
|
| Internal API, webhook handler, worker, cron, queue consumer, ingestion, Python-heavy compute | `sidecar` | This is backend/runtime logic, not a browser app concern. |
|
|
36
61
|
| Web app plus background jobs, integrations, AI processing, or internal APIs | `both` | Put UI in `tenant-app`; put backend execution in `sidecar`. |
|
|
@@ -39,7 +64,9 @@ implementation surfaces inside that pack.
|
|
|
39
64
|
|
|
40
65
|
## Default Rule
|
|
41
66
|
|
|
42
|
-
If unsure, start with `tenant-app
|
|
67
|
+
If unsure, check shell fit first. Only start with `tenant-app` after the request
|
|
68
|
+
has been confirmed to be a public surface or an explicit standalone-shell
|
|
69
|
+
exception.
|
|
43
70
|
|
|
44
71
|
Prefer declarative schema/manifests first. Add `sidecar` only when you can name
|
|
45
72
|
a concrete backend responsibility such as:
|
|
@@ -8,6 +8,15 @@ An `app pack` is the shipped product unit.
|
|
|
8
8
|
- Start with declarative schema/manifests and add code surfaces only when needed.
|
|
9
9
|
- Use `tenant-app` for the combined public-site plus private-app web surface.
|
|
10
10
|
- Use `sidecar` for internal APIs, workers, integrations, or Python-heavy compute.
|
|
11
|
+
- For member-facing collaboration and operator workflows, check shell fit first
|
|
12
|
+
before proposing standalone `tenant-app` routes or dashboards.
|
|
13
|
+
- Prefer thread metadata, cards/attachments, agent skills, right-rail detail,
|
|
14
|
+
and server-level state when the request belongs inside the shell.
|
|
15
|
+
- Only use standalone `tenant-app` UI by default for public surfaces or when the
|
|
16
|
+
request explicitly asks for a separate client/app.
|
|
17
|
+
- If shell fit is correct but this generated workspace cannot directly author
|
|
18
|
+
the shell extension, record a capability gap instead of silently turning the
|
|
19
|
+
request into a standalone `tenant-app` exception.
|
|
11
20
|
- Treat `mw.core.site` as a runtime baseline capability and compose against it
|
|
12
21
|
instead of trying to install it from the workspace.
|
|
13
22
|
- Reuse existing runtime AI capabilities before adding direct model/provider
|
|
@@ -17,6 +17,16 @@ the monorepo or a live tenant runtime.
|
|
|
17
17
|
- `tenant-app` and optional `sidecar` are implementation surfaces inside the
|
|
18
18
|
tenant product, not the whole architecture.
|
|
19
19
|
- `tenant-app` is the combined public plus private web starter.
|
|
20
|
+
- For member-facing collaboration and operator work, the primary product surface
|
|
21
|
+
is the gateway shell under `/w/[workspace_slug]`. Do not default to a bespoke
|
|
22
|
+
standalone tenant frontend when the work belongs in shell threads, cards, or
|
|
23
|
+
metadata.
|
|
24
|
+
- Public routes and explicit standalone-client exceptions still belong in
|
|
25
|
+
`tenant-app`; check shell fit first before taking that path.
|
|
26
|
+
- If shell fit is correct but this generated workspace cannot directly author
|
|
27
|
+
the needed shell extension, keep the shell-first proposal and record a
|
|
28
|
+
capability gap instead of silently converting the work into standalone
|
|
29
|
+
`tenant-app` UI.
|
|
20
30
|
- External collaboration is a first-class system pattern. Do not treat guest
|
|
21
31
|
participants, inbound aliases, or shared threads as ad hoc product features.
|
|
22
32
|
- `mw.core.site` is a runtime baseline capability; public site authoring should
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Shell Architecture
|
|
2
|
+
|
|
3
|
+
Use this skill when the request touches member-facing UI, operator workflows,
|
|
4
|
+
threads, channels, inboxes, guest collaboration, approvals, dashboards, or
|
|
5
|
+
"should this be a separate frontend?" questions.
|
|
6
|
+
|
|
7
|
+
- Default to the member shell first. For collaboration and operator work, the
|
|
8
|
+
primary product surface is the gateway shell under `/w/[workspace_slug]`, not
|
|
9
|
+
a bespoke standalone tenant frontend.
|
|
10
|
+
- Treat these nouns as the default mental model:
|
|
11
|
+
- **Server**: the product-facing private tenant space
|
|
12
|
+
- **Channel**: a conversation surface inside the shell
|
|
13
|
+
- **Thread**: the unit of work inside a channel
|
|
14
|
+
- **Entry / attachment / card**: the UI that renders inside a thread stream
|
|
15
|
+
- **Member / guest / shadow participant**: visibility and participation roles
|
|
16
|
+
- **Agent**: may appear as a shell channel in the current shell model
|
|
17
|
+
- Current shell truth:
|
|
18
|
+
- the shell is the **primary** collaboration surface, not literally the only
|
|
19
|
+
UI in the repo
|
|
20
|
+
- `/w/[workspace_slug]` redirects into the channel shell routes
|
|
21
|
+
- the current v3 shell implements a left rail, sidebar, main thread area, and
|
|
22
|
+
right rail
|
|
23
|
+
- the current shell proves a fixed agent-like channel set (`superagent`,
|
|
24
|
+
`builder`, `website-admin`); do not assume arbitrary runtime agents already
|
|
25
|
+
auto-materialize as channels unless code or runtime inventory proves it
|
|
26
|
+
- For member-facing operator work, first ask whether the request fits as a shell
|
|
27
|
+
extension:
|
|
28
|
+
- thread metadata extension
|
|
29
|
+
- rich message card / attachment
|
|
30
|
+
- agent skill invoked in thread context
|
|
31
|
+
- server-level shared state or catalog
|
|
32
|
+
- right-panel contextual detail
|
|
33
|
+
- Do **not** default to standalone `/app/*` dashboards or object-management
|
|
34
|
+
routes when the work belongs in threads, cards, metadata, or agent-driven
|
|
35
|
+
conversation.
|
|
36
|
+
- Standalone `tenant-app` UI is an exception path, not the first proposal.
|
|
37
|
+
Consider it when:
|
|
38
|
+
- the user explicitly asks for a separate standalone client
|
|
39
|
+
- the surface is public marketing
|
|
40
|
+
- the surface is public intake for non-members
|
|
41
|
+
- the surface is an embeddable widget
|
|
42
|
+
- If shell fit is correct but this generated workspace cannot directly author
|
|
43
|
+
the shell extension, keep the shell-first recommendation and record a
|
|
44
|
+
capability gap instead of silently converting the request into standalone
|
|
45
|
+
`tenant-app` UI.
|
|
46
|
+
- Be precise about terminology:
|
|
47
|
+
- product/server space: **Server** / **Tenant** in platform docs and models
|
|
48
|
+
- generated local repo: **developer workspace**
|
|
49
|
+
- Do not overclaim current platform reality:
|
|
50
|
+
- shell-first is the intended default
|
|
51
|
+
- the current shell still has static/mock sections and fixed routes
|
|
52
|
+
- not every right-rail or agent/channel extension is a generalized registry
|
|
53
|
+
yet
|
|
54
|
+
- When in doubt, inspect:
|
|
55
|
+
- frontend shell routes and components
|
|
56
|
+
- platform `channels` / `threads` models
|
|
57
|
+
- runtime `ThreadRuntimeBinding` and thread-post models
|
|
58
|
+
- shadow/public-intake/reference contracts
|