@synap-core/workspace-templates 0.3.0 → 0.5.0
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/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +352 -11
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +25 -16
- package/src/agent-fleet.yaml +40 -2
- package/src/brand-library.yaml +38 -1
- package/src/builder.yaml +36 -0
- package/src/content-os.yaml +31 -0
- package/src/content-studio.yaml +38 -0
- package/src/crm.yaml +114 -0
- package/src/dev-dashboard.yaml +37 -0
- package/src/finance.yaml +40 -1
- package/src/foundation.yaml +35 -1
- package/src/hr.yaml +42 -1
- package/src/legal.yaml +44 -1
- package/src/life-os.yaml +44 -2
- package/src/marketing.yaml +37 -0
- package/src/operations.yaml +40 -1
- package/src/personal.yaml +38 -0
- package/src/project-management.yaml +38 -0
- package/src/radar.yaml +35 -1
- package/src/templates.ts +352 -11
- package/src/types.ts +27 -0
package/dist/types.d.ts
CHANGED
|
@@ -176,11 +176,33 @@ export interface TemplateOnboardingCollectTarget {
|
|
|
176
176
|
/** Key fields the agent should make sure to fill. */
|
|
177
177
|
keyFields?: string[];
|
|
178
178
|
}
|
|
179
|
+
export interface TemplateOnboardingExpertise {
|
|
180
|
+
/**
|
|
181
|
+
* Concrete starting points the agent PROPOSES instead of asking blank —
|
|
182
|
+
* "most X do Y, want that as a starting point?". Grounds the agent's
|
|
183
|
+
* proposals in real domain knowledge (never fabricates strategy — for
|
|
184
|
+
* mission/positioning these FRAME, they don't invent the answer).
|
|
185
|
+
*/
|
|
186
|
+
starters?: string[];
|
|
187
|
+
/**
|
|
188
|
+
* Blind spots founders in this domain commonly miss. The agent proactively
|
|
189
|
+
* surfaces these if the founder hasn't — catching what they don't say.
|
|
190
|
+
*/
|
|
191
|
+
blindSpots?: string[];
|
|
192
|
+
/** What a GREAT result looks like here — the bar the agent pushes toward. */
|
|
193
|
+
bar?: string;
|
|
194
|
+
}
|
|
179
195
|
export interface TemplateOnboarding {
|
|
180
196
|
/** The outcome this onboarding achieves, in one sentence. */
|
|
181
197
|
goal: string;
|
|
182
198
|
/** Domain framing/voice the agent adopts for THIS workspace (the persona). */
|
|
183
199
|
framing: string;
|
|
200
|
+
/**
|
|
201
|
+
* Authored domain expertise the agent leads with (optional). Turns the
|
|
202
|
+
* interview from "extract what the founder knows" into "resolve what they
|
|
203
|
+
* lack". See the `onboard` skill's "Lead with your expertise" step.
|
|
204
|
+
*/
|
|
205
|
+
expertise?: TemplateOnboardingExpertise;
|
|
184
206
|
/** What structured data to collect (entities to create + their key fields). */
|
|
185
207
|
collect: TemplateOnboardingCollectTarget[];
|
|
186
208
|
/** A few opening questions — the agent adapts from here, never rigid. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synap-core/workspace-templates",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"packageManager": "pnpm@9.15.4",
|
|
5
6
|
"description": "Canonical workspace definitions — YAML source + typed exports for browser, backend, CLI, and marketplace",
|
|
6
7
|
"exports": {
|
|
7
8
|
".": {
|
|
8
|
-
"types": "./
|
|
9
|
-
"
|
|
9
|
+
"types": "./src/index.ts",
|
|
10
|
+
"node": "./dist/index.js",
|
|
11
|
+
"default": "./src/index.ts"
|
|
10
12
|
}
|
|
11
13
|
},
|
|
12
14
|
"files": [
|
|
13
15
|
"dist",
|
|
14
16
|
"src"
|
|
15
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"type-check": "tsc --noEmit",
|
|
20
|
+
"build:yaml": "node build.mjs",
|
|
21
|
+
"build": "node build.mjs && tsc -p tsconfig.build.json",
|
|
22
|
+
"provision": "node scripts/provision.mjs",
|
|
23
|
+
"eval": "node scripts/eval-standard.mjs",
|
|
24
|
+
"prepublishOnly": "node build.mjs && tsc -p tsconfig.build.json"
|
|
25
|
+
},
|
|
16
26
|
"dependencies": {
|
|
17
27
|
"zod": "^3.0.0",
|
|
18
28
|
"js-yaml": "^4.1.0"
|
|
@@ -24,16 +34,15 @@
|
|
|
24
34
|
},
|
|
25
35
|
"publishConfig": {
|
|
26
36
|
"registry": "https://registry.npmjs.org",
|
|
27
|
-
"access": "public"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
37
|
+
"access": "public",
|
|
38
|
+
"main": "./dist/index.js",
|
|
39
|
+
"module": "./dist/index.js",
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"exports": {
|
|
42
|
+
".": {
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"default": "./dist/index.js"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
package/src/agent-fleet.yaml
CHANGED
|
@@ -971,7 +971,7 @@ profileEntityBentoTemplates:
|
|
|
971
971
|
pos: { x: 4, y: 6, w: 8, h: 4 }
|
|
972
972
|
|
|
973
973
|
layout:
|
|
974
|
-
pinnedApps: [
|
|
974
|
+
pinnedApps: [chat, dashboard, data]
|
|
975
975
|
defaultView: agent-fleet
|
|
976
976
|
defaultApp: null
|
|
977
977
|
sidebarItems:
|
|
@@ -996,7 +996,7 @@ layout:
|
|
|
996
996
|
label: Providers
|
|
997
997
|
icon: database
|
|
998
998
|
- kind: app
|
|
999
|
-
appId:
|
|
999
|
+
appId: chat
|
|
1000
1000
|
label: Intelligence
|
|
1001
1001
|
|
|
1002
1002
|
# App reference — Agent Fleet has no dedicated browser app; it lands on entity detail / views.
|
|
@@ -1016,6 +1016,44 @@ playbooks:
|
|
|
1016
1016
|
onboarding:
|
|
1017
1017
|
goal: "Capture the agent fleet the user runs — the agents themselves, the model providers behind them, the skills they carry, and the projects they work — so the workspace reflects their real AI operation."
|
|
1018
1018
|
framing: "Act as a pragmatic AI ops lead. Tease out which agents are live, what models and providers power them, what each agent can do, and what work they're pointed at. Translate that into agents, providers, skills, and projects."
|
|
1019
|
+
expertise:
|
|
1020
|
+
starters:
|
|
1021
|
+
- >
|
|
1022
|
+
For every live agent, pin down the trio that actually matters: model, provider, and daily
|
|
1023
|
+
budget ceiling. "I have an agent" is not an entity — "a Coder agent on Claude via OpenRouter,
|
|
1024
|
+
capped at $5/day" is. Lead by capturing that trio for the one agent running most, then fan
|
|
1025
|
+
out. An agent with no budget number is an uncapped spend waiting to happen.
|
|
1026
|
+
- >
|
|
1027
|
+
Capture each provider as its own entity with cost-per-token AND key health, not just a name.
|
|
1028
|
+
Propose logging the provider behind your busiest agent first, with its input/output token
|
|
1029
|
+
cost and when the key expires — because the two ways a fleet dies are a blown budget and an
|
|
1030
|
+
expired key, and both live on the provider, not the agent.
|
|
1031
|
+
- >
|
|
1032
|
+
Scope each agent to ONE role and catalogue the specific skills it carries, with a trust
|
|
1033
|
+
level on each. Lead with "what is this agent FOR, and what exactly can it do?" A named,
|
|
1034
|
+
scoped agent with three trusted skills beats one vague "assistant" agent that can supposedly
|
|
1035
|
+
do everything.
|
|
1036
|
+
blindSpots:
|
|
1037
|
+
- >
|
|
1038
|
+
Untracked spend is the fleet-killer. Agents burn tokens silently — a runaway loop, a retry
|
|
1039
|
+
storm, a context window nobody trimmed — and the first signal is the invoice. Surface daily
|
|
1040
|
+
budget ceilings and weekly actual spend per provider proactively; the CFO view (which work
|
|
1041
|
+
is burning budget) is the one nobody builds until it's too late.
|
|
1042
|
+
- >
|
|
1043
|
+
The "one agent for everything" anti-pattern feels efficient and is the opposite. A single
|
|
1044
|
+
generalist agent with every skill and every key is un-auditable, un-scopeable, and a fat
|
|
1045
|
+
blast radius when a skill goes rogue. Push toward scoped agents — Coder, Researcher, Ops —
|
|
1046
|
+
each with only the skills and provider budget its job needs.
|
|
1047
|
+
- >
|
|
1048
|
+
Single-provider risk hides until the provider has an outage or rate-limits you mid-run.
|
|
1049
|
+
Teams wire every agent to one provider and have no fallback, so one 429 halts the whole
|
|
1050
|
+
fleet. Capture provider fallback intent (primary + backup) so a single vendor's bad day
|
|
1051
|
+
isn't your whole operation's bad day.
|
|
1052
|
+
bar: >
|
|
1053
|
+
A great result is a fleet you can run like an operation, not a pile of daemons: every live
|
|
1054
|
+
agent has a model, a provider, a budget, and a scoped set of trusted skills; every provider
|
|
1055
|
+
shows its cost, key health, and spend-against-budget; and you can answer "which agent is
|
|
1056
|
+
burning the most, on whose key, and what happens if that provider goes down?" in one glance.
|
|
1019
1057
|
collect:
|
|
1020
1058
|
- profileSlug: agent
|
|
1021
1059
|
what: "The agents they run and what powers each"
|
package/src/brand-library.yaml
CHANGED
|
@@ -518,6 +518,43 @@ onboarding:
|
|
|
518
518
|
colors, type), and the non-negotiable rules. Translate fuzzy vibes into
|
|
519
519
|
concrete voice guides and rules. Reference the Foundation (mission, audience,
|
|
520
520
|
positioning) so the brand expresses the strategy, never contradicts it.
|
|
521
|
+
expertise:
|
|
522
|
+
starters:
|
|
523
|
+
- >
|
|
524
|
+
Adjectives don't define a voice — "friendly, bold, human" describes every
|
|
525
|
+
brand and constrains none. Propose voice as a small set of DO / DON'T pairs
|
|
526
|
+
instead ("say 'you', not 'users'"; "short declaratives, never hedged
|
|
527
|
+
qualifiers"). Pairs are testable; adjectives are decoration.
|
|
528
|
+
- >
|
|
529
|
+
A voice guide is only real if it survives a sentence test. Take one actual
|
|
530
|
+
line from their site or a competitor's and rewrite it in the proposed voice
|
|
531
|
+
on the spot — if the rewrite looks identical to the original, the voice isn't
|
|
532
|
+
differentiated yet. Push until the two versions are visibly different.
|
|
533
|
+
- >
|
|
534
|
+
Build the palette around ROLES, not just favorite colors. Pin the semantic
|
|
535
|
+
roles first — primary, surface, text, and one restrained accent — and make
|
|
536
|
+
the accent earn its keep. Most brands leak trust by using three "brand
|
|
537
|
+
colors" as accents; propose one hero accent and demote the rest to support.
|
|
538
|
+
blindSpots:
|
|
539
|
+
- >
|
|
540
|
+
"Brand = logo" is the classic trap. The logo is the least-used, most-argued
|
|
541
|
+
asset; the voice, the color roles, and the do/don't rules drive 90% of what
|
|
542
|
+
anyone actually ships. If they lead with the logo, redirect to how the brand
|
|
543
|
+
SOUNDS and behaves in a paragraph of copy.
|
|
544
|
+
- >
|
|
545
|
+
Rules with no severity are ignored. A pile of equally-weighted "guidelines"
|
|
546
|
+
gives an AI or a teammate nothing to obey — mark each as mandatory,
|
|
547
|
+
important, or guideline so the non-negotiables (clearspace, accessibility
|
|
548
|
+
contrast, forbidden words) actually hold under pressure.
|
|
549
|
+
- >
|
|
550
|
+
Color contrast is a silent brand-killer: a beautiful palette that fails WCAG
|
|
551
|
+
AA on text is off-brand the moment it's inaccessible. If they've picked
|
|
552
|
+
colors without checking text-on-surface contrast, flag it before it's
|
|
553
|
+
codified into tokens.
|
|
554
|
+
bar: >
|
|
555
|
+
A stranger handed the voice pairs, the color roles, and the rules could write a
|
|
556
|
+
new paragraph and pick a button color that both read unmistakably as THIS brand —
|
|
557
|
+
and every rule is testable on a real sentence or a real screen, not a vibe.
|
|
521
558
|
collect:
|
|
522
559
|
- profileSlug: brand-identity
|
|
523
560
|
what: The core brand identity — name, essence, and how it presents itself.
|
|
@@ -548,7 +585,7 @@ app:
|
|
|
548
585
|
title: Brand Library
|
|
549
586
|
|
|
550
587
|
layout:
|
|
551
|
-
pinnedApps: [data,
|
|
588
|
+
pinnedApps: [data, files, brandLibrary]
|
|
552
589
|
defaultView: Brand Command Center
|
|
553
590
|
defaultApp: brandLibrary
|
|
554
591
|
sidebarItems:
|
package/src/builder.yaml
CHANGED
|
@@ -1266,6 +1266,42 @@ onboarding:
|
|
|
1266
1266
|
lives (repos + local paths), what runs behind each app, where it deploys, and what's on
|
|
1267
1267
|
the bench right now. Prefer concrete over aspirational — a repo URL beats a wish. Tie the
|
|
1268
1268
|
roadmap back to the Foundation's mission and audiences: the surface exists to serve them.
|
|
1269
|
+
expertise:
|
|
1270
|
+
starters:
|
|
1271
|
+
- >
|
|
1272
|
+
Don't ask "what do you want to build?" — ask what's already running. Propose starting from
|
|
1273
|
+
the ONE app that's live today, its primary deploy target, and the single feature in flight
|
|
1274
|
+
right now. One real node with a repo URL beats ten aspirational ones. The map grows from
|
|
1275
|
+
what exists, not from the org chart you wish you had.
|
|
1276
|
+
- >
|
|
1277
|
+
For each app, capture the deploy path end to end: repo → branch that auto-deploys → target
|
|
1278
|
+
(Vercel/Coolify/bare VPS) → the URL it lands on. A node that says "app" but can't answer
|
|
1279
|
+
"how does a commit reach production?" is a label, not a map.
|
|
1280
|
+
- >
|
|
1281
|
+
Lead with the in-flight work as first-class entities, not a backlog dump. Take the feature
|
|
1282
|
+
being coded this week, give it a status and an acceptance criterion, and link it to its app.
|
|
1283
|
+
That single live thread is what makes the workspace a command center instead of a wiki.
|
|
1284
|
+
blindSpots:
|
|
1285
|
+
- >
|
|
1286
|
+
The map is worthless the moment it drifts from reality. Founders capture the IDEAL
|
|
1287
|
+
architecture (the clean diagram) instead of the system AS IT IS — the hacky cron, the
|
|
1288
|
+
service everyone forgot owns auth, the package no one dares upgrade. Capture the mess;
|
|
1289
|
+
the mess is where the incidents come from.
|
|
1290
|
+
- >
|
|
1291
|
+
"We'll document it later" is how tribal knowledge dies. The one engineer who knows why
|
|
1292
|
+
service X can't be restarted during a deploy leaves, and it becomes a 2am incident. Capture
|
|
1293
|
+
the non-obvious operational facts (decision records, gotchas) NOW, while someone still
|
|
1294
|
+
remembers the why — not after the outage.
|
|
1295
|
+
- >
|
|
1296
|
+
Packages and their dependency edges are the silent killer. Founders track apps but not the
|
|
1297
|
+
shared substrate underneath — so a "small" bump to a core package breaks three apps nobody
|
|
1298
|
+
connected to it. Capture what depends on what; the blast radius lives in the edges, not the
|
|
1299
|
+
nodes.
|
|
1300
|
+
bar: >
|
|
1301
|
+
A great result is a graph you can navigate in any direction to answer a real operational
|
|
1302
|
+
question — "if I bump this package, what breaks?", "how does a commit reach prod for app X?",
|
|
1303
|
+
"what's actually in flight and who's on it?" — and every answer matches what's true in the
|
|
1304
|
+
terminal right now, not what was true at kickoff.
|
|
1269
1305
|
collect:
|
|
1270
1306
|
- profileSlug: devplane_app
|
|
1271
1307
|
what: The apps that are shipped or actively being built — with where their code lives and what stack they run on.
|
package/src/content-os.yaml
CHANGED
|
@@ -1009,6 +1009,37 @@ playbooks: []
|
|
|
1009
1009
|
onboarding:
|
|
1010
1010
|
goal: "Capture the user's brand voice, audience, content pillars, and publishing rhythm across channels — so the workspace reflects how they actually create and distribute content, not a generic calendar."
|
|
1011
1011
|
framing: "Act as a seasoned content strategist. Tease out their voice and positioning, who they're talking to, the recurring themes they own, the channels they publish on, and how often. Translate that into pillars, platforms, and a seeded content calendar."
|
|
1012
|
+
expertise:
|
|
1013
|
+
starters:
|
|
1014
|
+
- >
|
|
1015
|
+
Most creators over-index on one format and burn out. Propose 3–4 pillars
|
|
1016
|
+
that mix TEACH (how it works), PROVE (customer/results), and PROVOKE
|
|
1017
|
+
(point of view) — then adapt the mix to their niche. Don't ask for pillars
|
|
1018
|
+
from a blank slate; offer a starting set and let them react.
|
|
1019
|
+
- >
|
|
1020
|
+
Better to own ONE channel consistently than be thin on four. If they list
|
|
1021
|
+
many platforms, propose a primary channel + a cadence they can actually
|
|
1022
|
+
sustain, and treat the rest as repurposing targets, not separate efforts.
|
|
1023
|
+
- >
|
|
1024
|
+
Every pillar should ladder to a business goal — awareness, trust, or
|
|
1025
|
+
conversion. If a pillar is just "stuff we post", propose the job it should
|
|
1026
|
+
do and tie it to a specific audience segment.
|
|
1027
|
+
blindSpots:
|
|
1028
|
+
- >
|
|
1029
|
+
Distribution is the silent killer — great content nobody sees. If they
|
|
1030
|
+
haven't said HOW each piece gets discovered (SEO, a platform's algorithm,
|
|
1031
|
+
an email list, founder-led amplification), raise it before moving on.
|
|
1032
|
+
- >
|
|
1033
|
+
No repurposing plan = 5× the work for 1× the reach. If they treat each
|
|
1034
|
+
post as one-and-done, propose a chain: one deep piece → clips → posts →
|
|
1035
|
+
newsletter.
|
|
1036
|
+
- >
|
|
1037
|
+
Pillars with no audience attached reach no one. Tie each pillar to a
|
|
1038
|
+
specific segment — "content for everyone" is content for nobody.
|
|
1039
|
+
bar: >
|
|
1040
|
+
The pillars + primary platform + cadence read like a system a small team
|
|
1041
|
+
could actually run for 3 months without burning out — where every pillar has
|
|
1042
|
+
a clear audience, a clear job, and a way to get discovered.
|
|
1012
1043
|
collect:
|
|
1013
1044
|
- profileSlug: pillar
|
|
1014
1045
|
what: "Their recurring content themes / brand voice — the lenses their audience knows them for, and who each speaks to"
|
package/src/content-studio.yaml
CHANGED
|
@@ -298,6 +298,44 @@ onboarding:
|
|
|
298
298
|
and series they actually run, not one-off ideas. Pull voice and visual identity
|
|
299
299
|
from Brand and target audience from Foundation so every piece lands on-brand.
|
|
300
300
|
Be concrete about specs; a fuzzy "we make videos" helps no one.
|
|
301
|
+
expertise:
|
|
302
|
+
starters:
|
|
303
|
+
- >
|
|
304
|
+
Produce in BATCHES, not one-at-a-time. Setup — lighting, wardrobe, template
|
|
305
|
+
loading, brand assets — is the real cost; shooting or composing five pieces
|
|
306
|
+
in one session amortizes it. Propose a batch cadence (e.g. one shoot day →
|
|
307
|
+
a month of cuts) rather than a per-video pipeline.
|
|
308
|
+
- >
|
|
309
|
+
The hook is 80% of the view. On a 9:16 feed the first 1–2 seconds decide
|
|
310
|
+
whether the piece is watched at all, so it's worth more iteration than the
|
|
311
|
+
rest combined. Propose a template whose title card / cold-open IS the hook,
|
|
312
|
+
and treat the hook as its own reusable asset.
|
|
313
|
+
- >
|
|
314
|
+
Design every shoot for REPURPOSING before you roll. One long-form capture
|
|
315
|
+
should yield the long cut, several vertical clips, and stills — but only if
|
|
316
|
+
it's framed and shot with those crops in mind. Propose the repurpose chain
|
|
317
|
+
up front so the raw footage is cut-once, use-many.
|
|
318
|
+
blindSpots:
|
|
319
|
+
- >
|
|
320
|
+
The velocity-vs-quality tradeoff is a real dial, not a failing — a weekly
|
|
321
|
+
show that's "good enough and on time" beats a cinematic piece that ships
|
|
322
|
+
quarterly. If they're chasing polish on a high-cadence line, name the
|
|
323
|
+
tradeoff and propose a quality bar that survives the schedule.
|
|
324
|
+
- >
|
|
325
|
+
No reusable templates = every video rebuilt from scratch, and brand drift
|
|
326
|
+
creeps in. If they're producing on a cadence but have no locked
|
|
327
|
+
intros/outros/lower-thirds, that's the gap — templates are what make output
|
|
328
|
+
both fast AND on-brand. Surface it.
|
|
329
|
+
- >
|
|
330
|
+
Aspect ratio and platform are a production decision, not an export
|
|
331
|
+
afterthought. Shooting 16:9 and cropping to 9:16 later loses the frame and
|
|
332
|
+
the hook. If a pipeline's platform doesn't match how it's actually shot,
|
|
333
|
+
flag the mismatch before it's baked into every render.
|
|
334
|
+
bar: >
|
|
335
|
+
The studio reads like a production LINE: recurring shows with locked specs,
|
|
336
|
+
reusable templates that carry brand into every render, and asset sources feeding
|
|
337
|
+
a batch-then-repurpose flow — so a producer could ship the next episode this week
|
|
338
|
+
without reinventing the format or fighting brand drift.
|
|
301
339
|
collect:
|
|
302
340
|
- profileSlug: content-pipeline
|
|
303
341
|
what: The recurring productions you run — the shows, series, or content lines that generate output on a cadence (e.g. weekly reels, product demos, explainer drops).
|
package/src/crm.yaml
CHANGED
|
@@ -581,6 +581,7 @@ profiles:
|
|
|
581
581
|
valueType: string
|
|
582
582
|
inputType: select
|
|
583
583
|
enumValues:
|
|
584
|
+
- prospect
|
|
584
585
|
- active
|
|
585
586
|
- paused
|
|
586
587
|
- churned
|
|
@@ -620,6 +621,65 @@ profiles:
|
|
|
620
621
|
- healthy
|
|
621
622
|
- at_risk
|
|
622
623
|
- critical
|
|
624
|
+
- slug: partner
|
|
625
|
+
displayName: Partner
|
|
626
|
+
icon: handshake
|
|
627
|
+
color: teal
|
|
628
|
+
description: A partner relationship — both a referral source and a co-delivery collaborator, distinguished by partner type.
|
|
629
|
+
properties:
|
|
630
|
+
- slug: partnerStatus
|
|
631
|
+
label: Status
|
|
632
|
+
valueType: string
|
|
633
|
+
inputType: select
|
|
634
|
+
enumValues:
|
|
635
|
+
- prospect
|
|
636
|
+
- active
|
|
637
|
+
- paused
|
|
638
|
+
- churned
|
|
639
|
+
- slug: partnerType
|
|
640
|
+
label: Partner Type
|
|
641
|
+
valueType: string
|
|
642
|
+
inputType: select
|
|
643
|
+
enumValues:
|
|
644
|
+
- referral
|
|
645
|
+
- co-delivery
|
|
646
|
+
- both
|
|
647
|
+
- slug: accountManager
|
|
648
|
+
label: Account Manager
|
|
649
|
+
valueType: string
|
|
650
|
+
inputType: text
|
|
651
|
+
- slug: engagementStartDate
|
|
652
|
+
label: Engagement Start
|
|
653
|
+
valueType: date
|
|
654
|
+
inputType: date
|
|
655
|
+
- slug: satisfactionScore
|
|
656
|
+
label: Satisfaction
|
|
657
|
+
valueType: number
|
|
658
|
+
inputType: number
|
|
659
|
+
- slug: lifetimeValue
|
|
660
|
+
label: Lifetime Value
|
|
661
|
+
valueType: number
|
|
662
|
+
inputType: number
|
|
663
|
+
- slug: notes
|
|
664
|
+
label: Notes
|
|
665
|
+
valueType: string
|
|
666
|
+
inputType: textarea
|
|
667
|
+
- slug: contractValue
|
|
668
|
+
label: Contract Value
|
|
669
|
+
valueType: number
|
|
670
|
+
inputType: number
|
|
671
|
+
- slug: renewalDate
|
|
672
|
+
label: Renewal Date
|
|
673
|
+
valueType: date
|
|
674
|
+
inputType: date
|
|
675
|
+
- slug: healthScore
|
|
676
|
+
label: Health
|
|
677
|
+
valueType: string
|
|
678
|
+
inputType: select
|
|
679
|
+
enumValues:
|
|
680
|
+
- healthy
|
|
681
|
+
- at_risk
|
|
682
|
+
- critical
|
|
623
683
|
- slug: contact
|
|
624
684
|
displayName: Contact
|
|
625
685
|
icon: user
|
|
@@ -1555,6 +1615,21 @@ entityLinks:
|
|
|
1555
1615
|
- sourceProfileSlug: deal
|
|
1556
1616
|
targetProfileSlug: pipeline
|
|
1557
1617
|
type: belongs_to
|
|
1618
|
+
- sourceProfileSlug: client
|
|
1619
|
+
targetProfileSlug: company
|
|
1620
|
+
type: belongs_to
|
|
1621
|
+
- sourceProfileSlug: client
|
|
1622
|
+
targetProfileSlug: contact
|
|
1623
|
+
type: primary_contact
|
|
1624
|
+
- sourceProfileSlug: partner
|
|
1625
|
+
targetProfileSlug: company
|
|
1626
|
+
type: works_with
|
|
1627
|
+
- sourceProfileSlug: partner
|
|
1628
|
+
targetProfileSlug: contact
|
|
1629
|
+
type: primary_contact
|
|
1630
|
+
- sourceProfileSlug: partner
|
|
1631
|
+
targetProfileSlug: client
|
|
1632
|
+
type: refers
|
|
1558
1633
|
displayTemplates:
|
|
1559
1634
|
- name: Deal Card
|
|
1560
1635
|
description: Sales deal with pipeline stage, value, probability, and linked company
|
|
@@ -2145,6 +2220,45 @@ integrations:
|
|
|
2145
2220
|
onboarding:
|
|
2146
2221
|
goal: Capture the user's sales pipeline shape, their key accounts/contacts, and how they qualify and move deals — so the CRM reflects their real revenue motion, not a generic template.
|
|
2147
2222
|
framing: "Act as a sharp revenue/sales-ops lead. Tease out how they actually sell: who they sell to, what stages a deal moves through, where leads come from, and what 'qualified' means to them. Translate their words into pipeline config, companies, contacts, and deals."
|
|
2223
|
+
expertise:
|
|
2224
|
+
starters:
|
|
2225
|
+
- >
|
|
2226
|
+
Don't ask for stages on a blank slate — infer the motion first and propose
|
|
2227
|
+
a default pipeline for it. PLG: Signup → Activated → PQL → Expansion.
|
|
2228
|
+
Sales-led: Discovery → Qualified → Demo → Proposal → Negotiation → Closed.
|
|
2229
|
+
Agency/retainer: Lead → Scoping → Proposal → Won → Delivery. Offer the one
|
|
2230
|
+
that fits and let them cut stages, rather than starting from nothing.
|
|
2231
|
+
- >
|
|
2232
|
+
Define every stage by a BUYER action, not a seller activity — "Demo booked"
|
|
2233
|
+
or "Security review passed", not "Following up" or "Sent email". Seller-verb
|
|
2234
|
+
stages are why pipelines rot: they describe effort, not progress. If they
|
|
2235
|
+
name an activity stage, reflect it back as the buyer commitment it's meant
|
|
2236
|
+
to prove.
|
|
2237
|
+
- >
|
|
2238
|
+
Anchor qualification to a named framework, don't leave "qualified" as a
|
|
2239
|
+
feeling. Propose BANT for transactional deals or MEDDIC for enterprise, then
|
|
2240
|
+
make the exit criteria out of it — e.g. a deal can't leave Qualified without
|
|
2241
|
+
a known budget, an identified economic buyer, and a compelling event.
|
|
2242
|
+
blindSpots:
|
|
2243
|
+
- >
|
|
2244
|
+
The "everything is 'in progress'" pipeline. If most deals sit in middle
|
|
2245
|
+
stages with no close date or next step, that's not a pipeline, it's a
|
|
2246
|
+
graveyard — hygiene has collapsed. Push for a next step + a date on every
|
|
2247
|
+
open deal, and be willing to mark the dead ones lost.
|
|
2248
|
+
- >
|
|
2249
|
+
A stage with no exit criteria is a wish, not a stage. If they can't tell you
|
|
2250
|
+
the ONE thing that must be true to advance a deal, the stage is theater.
|
|
2251
|
+
Force a crisp gate for each — what the buyer must have done to move forward.
|
|
2252
|
+
- >
|
|
2253
|
+
Founders track deal value but not the two numbers that actually predict
|
|
2254
|
+
revenue: win rate by stage and average sales-cycle length. Without them you
|
|
2255
|
+
can't forecast or spot where deals stall. Surface both early even if the
|
|
2256
|
+
first answer is a rough guess.
|
|
2257
|
+
bar: >
|
|
2258
|
+
The pipeline stages mirror how a buyer actually commits (not how the rep works
|
|
2259
|
+
their day), each stage has a one-line exit gate, "qualified" maps to a real
|
|
2260
|
+
framework, and every live deal on the board has an owner, a value, a next step,
|
|
2261
|
+
and a close date — so a glance at the board tells the truth about revenue.
|
|
2148
2262
|
collect:
|
|
2149
2263
|
- profileSlug: pipeline
|
|
2150
2264
|
what: Their real deal stages in order (e.g. Lead → Qualified → Demo → Proposal → Won/Lost)
|
package/src/dev-dashboard.yaml
CHANGED
|
@@ -888,6 +888,43 @@ bento:
|
|
|
888
888
|
onboarding:
|
|
889
889
|
goal: "Capture the user's infrastructure surface — the services they run, the repositories behind them, their environments, the vendors they depend on, and their credentials inventory — so the command center reflects their real stack."
|
|
890
890
|
framing: "Act as a staff platform engineer doing an infra walkthrough. Tease out what's running in production, where the code lives, how environments are laid out, which third parties they depend on, and what secrets need tracking. Translate that into services, repositories, environments, vendors, and credentials."
|
|
891
|
+
expertise:
|
|
892
|
+
starters:
|
|
893
|
+
- >
|
|
894
|
+
Start from what's serving live traffic RIGHT NOW, not the architecture diagram. Walk the
|
|
895
|
+
request path: what does a user hit first, and what does that call, and what does THAT call?
|
|
896
|
+
Capture each hop as a service with its host and health-check URL. The production edge is the
|
|
897
|
+
map's anchor; everything else hangs off it.
|
|
898
|
+
- >
|
|
899
|
+
For every third party, capture the cost AND who owns the account. Propose logging each
|
|
900
|
+
vendor with its pricing model and monthly spend the moment you name it — the €12/mo that
|
|
901
|
+
became €400/mo is always a vendor nobody was watching. An untracked line item is a future
|
|
902
|
+
surprise on the card.
|
|
903
|
+
- >
|
|
904
|
+
Inventory credentials by their EXPIRY, not their existence. For each secret, capture where
|
|
905
|
+
it's stored (vault ref), what it unlocks, and when it expires or was last rotated. The
|
|
906
|
+
credential nobody wrote down is the one that expires at 3am and takes prod with it.
|
|
907
|
+
blindSpots:
|
|
908
|
+
- >
|
|
909
|
+
The untracked credential is the classic infra time-bomb: the SSH key on one laptop, the API
|
|
910
|
+
token in someone's .env, the cert that auto-renewed until it didn't. Teams track services
|
|
911
|
+
obsessively and secrets not at all — surface expiry dates and rotation policy proactively,
|
|
912
|
+
because the outage is silent until the exact moment it isn't.
|
|
913
|
+
- >
|
|
914
|
+
Vendor cost creep has no owner. Each SaaS was signed up "just to try," and now the monthly
|
|
915
|
+
bill is a mystery no single person can explain line by line. Force a monthly-cost number and
|
|
916
|
+
an owner on every vendor — the sum is almost always higher than anyone guessed.
|
|
917
|
+
- >
|
|
918
|
+
"Works on my machine" is environment drift, and it hides until deploy day. Staging runs a
|
|
919
|
+
different Node, prod has an env var dev doesn't, the migration ran here but not there. Map
|
|
920
|
+
each environment EXPLICITLY with its branch and base URL so the deltas between prod, staging,
|
|
921
|
+
and dev are visible instead of discovered during an incident.
|
|
922
|
+
bar: >
|
|
923
|
+
A great result is a command center where you can answer, without SSHing anywhere: what's
|
|
924
|
+
serving traffic and is it healthy, which credential expires next and who rotates it, what each
|
|
925
|
+
vendor costs and who owns it, and exactly how prod differs from staging. The value is in the
|
|
926
|
+
facts nobody keeps in one place — expiry dates, cost owners, environment deltas — surfaced
|
|
927
|
+
before they become incidents.
|
|
891
928
|
collect:
|
|
892
929
|
- profileSlug: service
|
|
893
930
|
what: "The services / apps they run and their stack"
|
package/src/finance.yaml
CHANGED
|
@@ -362,6 +362,45 @@ onboarding:
|
|
|
362
362
|
leaves. Push for real numbers over estimates, flag anything that doesn't add
|
|
363
363
|
up, and tie revenue back to the company's positioning and pricing (from
|
|
364
364
|
Foundation) so the model is grounded in strategy, not spreadsheets.
|
|
365
|
+
expertise:
|
|
366
|
+
starters:
|
|
367
|
+
- >
|
|
368
|
+
Don't reconstruct a full P&L on day one — default the model to the three
|
|
369
|
+
numbers that keep a startup alive: cash in bank, monthly net burn, and
|
|
370
|
+
runway (cash ÷ burn, in months). Propose those first and layer detail later;
|
|
371
|
+
a founder who knows their runway to the month is ahead of one with a
|
|
372
|
+
beautiful chart of accounts.
|
|
373
|
+
- >
|
|
374
|
+
Add a small set of unit economics, not a whole finance stack: gross margin,
|
|
375
|
+
CAC, and LTV (or at minimum LTV:CAC ratio). Propose sensible defaults —
|
|
376
|
+
payback under ~12 months, LTV:CAC above ~3:1 — as reference points to react
|
|
377
|
+
to, rather than asking them to define metrics from scratch.
|
|
378
|
+
- >
|
|
379
|
+
Model cash on a timing basis, not an accrual one. When they give you revenue,
|
|
380
|
+
ask when the cash actually LANDS — Net-30/60 invoices, annual prepay,
|
|
381
|
+
Stripe payout lag — and capture that gap explicitly, because a profitable
|
|
382
|
+
month can still run the account dry.
|
|
383
|
+
blindSpots:
|
|
384
|
+
- >
|
|
385
|
+
Revenue ≠ cash. Founders book an annual contract and feel rich, but the cash
|
|
386
|
+
arrives monthly or after Net-60 — meanwhile payroll is due Friday. If they
|
|
387
|
+
conflate the two, separate signed bookings from collected cash before
|
|
388
|
+
computing anything.
|
|
389
|
+
- >
|
|
390
|
+
Runway is THE number that predicts survival, and it's the one most often
|
|
391
|
+
stale. If there's no current runway figure — or it hasn't been recomputed
|
|
392
|
+
since the last big hire or price change — that's the first gap to close.
|
|
393
|
+
Everything else is secondary to "how many months of oxygen is left".
|
|
394
|
+
- >
|
|
395
|
+
Bookings, revenue, and cash are three different numbers and founders routinely
|
|
396
|
+
merge them. A signed deal (booking), revenue recognized over its term, and
|
|
397
|
+
the money in the account are rarely equal in any given month. Name which one
|
|
398
|
+
each figure is, or the whole model lies.
|
|
399
|
+
bar: >
|
|
400
|
+
A stranger could open the workspace and answer three questions in ten seconds:
|
|
401
|
+
how much cash is in the bank, how much it burns a month, and how many months of
|
|
402
|
+
runway that leaves — with revenue captured on a cash-timing basis, bookings kept
|
|
403
|
+
distinct from collected cash, and at least a rough gross margin and LTV:CAC in view.
|
|
365
404
|
collect:
|
|
366
405
|
- profileSlug: account
|
|
367
406
|
what: The bank and credit accounts holding company cash, with current balances.
|
|
@@ -392,7 +431,7 @@ app:
|
|
|
392
431
|
layout:
|
|
393
432
|
defaultView: Invoices
|
|
394
433
|
defaultApp: null
|
|
395
|
-
pinnedApps: [dashboard, data,
|
|
434
|
+
pinnedApps: [dashboard, data, chat]
|
|
396
435
|
sidebarItems:
|
|
397
436
|
- kind: view
|
|
398
437
|
viewName: Runway & Metrics
|