@synap-core/workspace-templates 0.4.0 → 0.6.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.
@@ -0,0 +1,1096 @@
1
+ # Blockchain Grants workspace template
2
+ # AI-generation-friendly YAML. Validated against types.ts at build time.
3
+ # Folded in from The Arch's orphaned `arch_*` grants schema, generalized to be
4
+ # blockchain-agnostic (Stellar/Soroban is one instance, not the model).
5
+ #
6
+ # Kinds: grant_submission (pipeline card + analysis unit), round (funding cycle +
7
+ # deadline source), project (product/initiative), analysis (SCF-style scoring),
8
+ # signal (recurring pattern). Role facets on company/person: client, partner,
9
+ # sponsor. `arch_team` dropped (system company/person via submitted_by),
10
+ # `arch_config` dropped (tokens→vault, crmWorkspaceId→workspace sources),
11
+ # `arch_category` demoted to a `categories` tag on grant_submission.
12
+
13
+ meta:
14
+ slug: grants
15
+ name: Grants Pipeline
16
+ description: "Grant-agency operations — submissions, rounds, analyses. Overlays the Operations workspace."
17
+ icon: award
18
+ color: "#6366F1"
19
+ tags:
20
+ - grants
21
+ - blockchain
22
+ - pipeline
23
+ - funding
24
+ isPublic: false
25
+
26
+ # OVERLAY on Operations — composes additively, no separate workspace is created.
27
+ # subtype MATCHES the operations base (no-op on the additive reconcile); visibility
28
+ # and capabilities are OMITTED so the base Operations workspace keeps its own.
29
+ dependencies:
30
+ - slug: operations
31
+ kind: workspace
32
+ relation: compose
33
+ reason: "Adds grant-agency operations onto your Operations workspace."
34
+ # SSOT ordering guarantee — this template REFERENCES foundation's pod-wide
35
+ # shared roles (client, partner, sponsor). The apply engine seeds a shared
36
+ # profile's pod-wide BASE property body from whichever template creates it
37
+ # FIRST, and adds a REUSING template's extra props as workspace OVERLAYS.
38
+ # Requiring foundation makes the resolver install it first (deps-first), so
39
+ # the base is always foundation's SSOT body and never this template's.
40
+ # `require`, not `compose`: foundation is a real workspace, not an overlay.
41
+ - slug: foundation
42
+ kind: workspace
43
+ relation: require
44
+ reason: "Provides the pod-wide client / partner / sponsor role vocabulary this workspace reuses."
45
+
46
+ workspace:
47
+ name: Grants Pipeline
48
+ description: Blockchain grants intelligence — pipeline, funding rounds, projects, and AI analyses
49
+ proposalId: grants-v1
50
+ subtype: operations
51
+ profiles:
52
+ # ── Grant Submission (pipeline card + analysis unit) ──────────────────────
53
+ - slug: grant_submission
54
+ displayName: Submission
55
+ icon: file-text
56
+ color: blue
57
+ description: A single grant application — one project, one round, one outcome. The pipeline card and analysis unit.
58
+ scope: WORKSPACE
59
+ properties:
60
+ # Pipeline + workflow state
61
+ - slug: stage
62
+ label: Stage
63
+ valueType: string
64
+ inputType: select
65
+ enumValues:
66
+ - scope
67
+ - abstract
68
+ - build
69
+ - awaiting-results
70
+ - slug: status
71
+ label: Status
72
+ valueType: string
73
+ inputType: select
74
+ enumValues:
75
+ - answered
76
+ - waiting-client
77
+ - needs-document
78
+ - in-review
79
+ - blocked
80
+ - slug: outcome
81
+ label: Outcome
82
+ valueType: string
83
+ inputType: select
84
+ enumValues:
85
+ - pending
86
+ - awarded
87
+ - rejected
88
+ - partial
89
+ # Body content (read by AI prompts)
90
+ - slug: summary
91
+ label: Abstract
92
+ valueType: string
93
+ inputType: textarea
94
+ placeholder: One-sentence description
95
+ - slug: description
96
+ label: Full Description
97
+ valueType: string
98
+ inputType: textarea
99
+ placeholder: Products & Services + Success Criteria + GTM + Traction
100
+ - slug: milestonesSummary
101
+ label: Milestones (combined)
102
+ valueType: string
103
+ inputType: textarea
104
+ - slug: oneSentenceDescription
105
+ label: One-Sentence Description
106
+ valueType: string
107
+ inputType: text
108
+ - slug: productsAndServices
109
+ label: Products & Services
110
+ valueType: string
111
+ inputType: textarea
112
+ - slug: successCriteria
113
+ label: Success Criteria
114
+ valueType: string
115
+ inputType: textarea
116
+ - slug: goToMarketPlan
117
+ label: Go-To-Market Plan
118
+ valueType: string
119
+ inputType: textarea
120
+ - slug: tractionEvidence
121
+ label: Traction Evidence
122
+ valueType: string
123
+ inputType: textarea
124
+ # Delivery / tranche state
125
+ - slug: trancheCompletion
126
+ label: Tranche Completion
127
+ valueType: string
128
+ inputType: text
129
+ placeholder: Pre-Launch | Mainnet
130
+ - slug: trancheCompletionPct
131
+ label: Tranche Completion %
132
+ valueType: number
133
+ inputType: number
134
+ - slug: awardType
135
+ label: Award Type
136
+ valueType: string
137
+ inputType: text
138
+ placeholder: Kickstart / Build
139
+ - slug: awardCompletionDurationWeeks
140
+ label: Completion Duration (weeks)
141
+ valueType: number
142
+ inputType: number
143
+ - slug: tranche1Deliverables
144
+ label: Tranche 1 — Deliverables
145
+ valueType: string
146
+ inputType: textarea
147
+ - slug: tranche2Testnet
148
+ label: Tranche 2 — Testnet
149
+ valueType: string
150
+ inputType: textarea
151
+ - slug: tranche3Mainnet
152
+ label: Tranche 3 — Mainnet
153
+ valueType: string
154
+ inputType: textarea
155
+ # Money
156
+ - slug: requestedAmount
157
+ label: Requested ($)
158
+ valueType: number
159
+ inputType: number
160
+ - slug: awardedAmount
161
+ label: Awarded ($)
162
+ valueType: number
163
+ inputType: number
164
+ - slug: totalPaidUsd
165
+ label: Total Paid (USD)
166
+ valueType: number
167
+ inputType: number
168
+ - slug: totalPaidXlm
169
+ label: Total Paid (native token)
170
+ valueType: number
171
+ inputType: number
172
+ - slug: currency
173
+ label: Currency
174
+ valueType: string
175
+ inputType: text
176
+ placeholder: USD
177
+ # Chain — blockchain-general; Stellar/Soroban is one instance (optional)
178
+ - slug: blockchain
179
+ label: Blockchain
180
+ valueType: string
181
+ inputType: text
182
+ placeholder: Stellar / Ethereum / Solana ...
183
+ - slug: techStack
184
+ label: Tech Stack
185
+ valueType: string
186
+ inputType: textarea
187
+ - slug: usesSoroban
188
+ label: Uses Soroban? (Stellar-specific)
189
+ valueType: boolean
190
+ inputType: checkbox
191
+ - slug: sorobanUsage
192
+ label: Soroban Usage (Stellar-specific)
193
+ valueType: string
194
+ inputType: textarea
195
+ - slug: whyStellar
196
+ label: Why This Chain (Stellar-specific)
197
+ valueType: string
198
+ inputType: textarea
199
+ # Team
200
+ - slug: teamMembers
201
+ label: Team Members
202
+ valueType: string
203
+ inputType: textarea
204
+ - slug: teamStatement
205
+ label: Team Statement
206
+ valueType: string
207
+ inputType: textarea
208
+ # Categories — a simple tag array (arch_category demoted to a tag)
209
+ - slug: categories
210
+ label: Categories
211
+ valueType: array
212
+ # Links
213
+ - slug: websiteUrl
214
+ label: Website
215
+ valueType: string
216
+ inputType: url
217
+ - slug: codeUrl
218
+ label: Code
219
+ valueType: string
220
+ inputType: url
221
+ - slug: videoUrl
222
+ label: Video
223
+ valueType: string
224
+ inputType: url
225
+ - slug: technicalArchitectureUrl
226
+ label: Technical Architecture URL
227
+ valueType: string
228
+ inputType: url
229
+ - slug: sourceSubmissionUrl
230
+ label: Source Submission URL
231
+ valueType: string
232
+ inputType: url
233
+ - slug: links
234
+ label: Links (JSON)
235
+ valueType: json
236
+ inputType: json
237
+ - slug: sourceRecordId
238
+ label: Source Record ID
239
+ valueType: string
240
+ inputType: text
241
+ # Foreign keys (kept alongside entityLinks, mirroring crm deal FKs)
242
+ - slug: projectId
243
+ label: Project
244
+ valueType: entity_id
245
+ inputType: text
246
+ targetProfileSlug: grant-project
247
+ - slug: roundId
248
+ label: Round
249
+ valueType: entity_id
250
+ inputType: text
251
+ targetProfileSlug: round
252
+ # ── Round (funding cycle + deadline source) ───────────────────────────────
253
+ - slug: round
254
+ displayName: Grant Round
255
+ icon: calendar-clock
256
+ color: indigo
257
+ description: A single round of a grants program (e.g. SCF #42) — the funding-cycle and deadline source.
258
+ scope: WORKSPACE
259
+ properties:
260
+ - slug: roundNumber
261
+ label: Round Number
262
+ valueType: number
263
+ inputType: number
264
+ - slug: year
265
+ label: Year
266
+ valueType: number
267
+ inputType: number
268
+ - slug: quarterYear
269
+ label: Quarter, Year
270
+ valueType: string
271
+ inputType: text
272
+ placeholder: Q2 '19
273
+ - slug: phase
274
+ label: Phase
275
+ valueType: string
276
+ inputType: text
277
+ - slug: scfVersion
278
+ label: Program Version
279
+ valueType: string
280
+ inputType: text
281
+ placeholder: SCF 3.0
282
+ - slug: roundType
283
+ label: Round Type
284
+ valueType: string
285
+ inputType: text
286
+ placeholder: Build Award Round
287
+ - slug: status
288
+ label: Status
289
+ valueType: string
290
+ inputType: select
291
+ enumValues:
292
+ - upcoming
293
+ - open
294
+ - review
295
+ - closed
296
+ - slug: description
297
+ label: Description
298
+ valueType: string
299
+ inputType: textarea
300
+ - slug: submissionDeadline
301
+ label: Submission Deadline
302
+ valueType: date
303
+ inputType: date
304
+ - slug: notificationDate
305
+ label: Notification Date
306
+ valueType: date
307
+ inputType: date
308
+ - slug: totalAwarded
309
+ label: Total Awarded ($)
310
+ valueType: number
311
+ inputType: number
312
+ - slug: totalPaid
313
+ label: Total Paid ($)
314
+ valueType: number
315
+ inputType: number
316
+ - slug: totalSubmissions
317
+ label: Total Submissions
318
+ valueType: number
319
+ inputType: number
320
+ - slug: awardedSubmissionsCount
321
+ label: Awarded Count
322
+ valueType: number
323
+ inputType: number
324
+ - slug: awardRate
325
+ label: Award Rate (0-1)
326
+ valueType: number
327
+ inputType: number
328
+ - slug: averageAwardAmount
329
+ label: Average Award ($)
330
+ valueType: number
331
+ inputType: number
332
+ - slug: votersNumber
333
+ label: Voters Number
334
+ valueType: number
335
+ inputType: number
336
+ - slug: roundUrl
337
+ label: Round URL
338
+ valueType: string
339
+ inputType: url
340
+ - slug: roundRecapUrl
341
+ label: Round Recap URL
342
+ valueType: string
343
+ inputType: url
344
+ - slug: sourceRecordId
345
+ label: Source Record ID
346
+ valueType: string
347
+ inputType: text
348
+ placeholder: Airtable rec…
349
+ # ── Project (product/initiative, distinct from applicant company) ─────────
350
+ - slug: grant-project
351
+ displayName: Project
352
+ icon: rocket
353
+ color: violet
354
+ description: A long-lived project identity that may span multiple rounds — the product/initiative, distinct from the applicant company.
355
+ scope: WORKSPACE
356
+ properties:
357
+ - slug: summary
358
+ label: Summary
359
+ valueType: string
360
+ inputType: textarea
361
+ - slug: description
362
+ label: Description
363
+ valueType: string
364
+ inputType: textarea
365
+ - slug: websiteUrl
366
+ label: Website
367
+ valueType: string
368
+ inputType: url
369
+ - slug: projectUrl
370
+ label: Project URL
371
+ valueType: string
372
+ inputType: url
373
+ - slug: githubUrl
374
+ label: GitHub
375
+ valueType: string
376
+ inputType: url
377
+ - slug: xUrl
378
+ label: X / Twitter
379
+ valueType: string
380
+ inputType: url
381
+ - slug: discordUrl
382
+ label: Discord
383
+ valueType: string
384
+ inputType: url
385
+ - slug: linkedinUrl
386
+ label: LinkedIn
387
+ valueType: string
388
+ inputType: url
389
+ - slug: mediumUrl
390
+ label: Medium
391
+ valueType: string
392
+ inputType: url
393
+ - slug: analyticsUrl
394
+ label: Analytics
395
+ valueType: string
396
+ inputType: url
397
+ - slug: docsUrl
398
+ label: Docs
399
+ valueType: string
400
+ inputType: url
401
+ - slug: integrationStatus
402
+ label: Integration Status
403
+ valueType: string
404
+ inputType: text
405
+ placeholder: Mainnet / Testnet
406
+ - slug: isActive
407
+ label: Active?
408
+ valueType: boolean
409
+ inputType: checkbox
410
+ - slug: openSourceLevel
411
+ label: Open Source
412
+ valueType: string
413
+ inputType: text
414
+ - slug: usesSoroban
415
+ label: Uses Soroban? (Stellar-specific)
416
+ valueType: boolean
417
+ inputType: checkbox
418
+ - slug: totalAwarded
419
+ label: Total Awarded ($)
420
+ valueType: number
421
+ inputType: number
422
+ - slug: totalPaid
423
+ label: Total Paid ($)
424
+ valueType: number
425
+ inputType: number
426
+ - slug: regionsOfOperation
427
+ label: Regions (JSON)
428
+ valueType: json
429
+ inputType: json
430
+ - slug: teamDescription
431
+ label: Team Description
432
+ valueType: string
433
+ inputType: textarea
434
+ - slug: currentStatus
435
+ label: Current Status
436
+ valueType: string
437
+ inputType: select
438
+ enumValues:
439
+ - active
440
+ - paused
441
+ - wound_down
442
+ - unknown
443
+ - slug: categoryLabels
444
+ label: Categories (JSON)
445
+ valueType: json
446
+ inputType: json
447
+ - slug: appearedInRoundIds
448
+ label: Appeared in Rounds (JSON)
449
+ valueType: json
450
+ inputType: json
451
+ - slug: submissionCount
452
+ label: Submissions Count
453
+ valueType: number
454
+ inputType: number
455
+ - slug: awardedRoundCount
456
+ label: Awarded Round Count
457
+ valueType: number
458
+ inputType: number
459
+ - slug: sourceRecordId
460
+ label: Source Record ID
461
+ valueType: string
462
+ inputType: text
463
+ # ── Analysis (SCF-style scoring / bands) ──────────────────────────────────
464
+ - slug: analysis
465
+ displayName: Analysis
466
+ icon: brain
467
+ color: purple
468
+ description: AI-generated assessment (scores + bands) tied to a submission. Polymorphic subject via entityLinks.
469
+ scope: WORKSPACE
470
+ properties:
471
+ - slug: subjectType
472
+ label: Subject Type
473
+ valueType: string
474
+ inputType: select
475
+ enumValues:
476
+ - submission
477
+ - project
478
+ - slug: subjectId
479
+ label: Subject Entity ID
480
+ valueType: string
481
+ inputType: text
482
+ - slug: analysisType
483
+ label: Analysis Type
484
+ valueType: string
485
+ inputType: select
486
+ enumValues:
487
+ - first_pass_public
488
+ - internal_deep_review
489
+ - similarity_report
490
+ - signal_extraction
491
+ - slug: summary
492
+ label: Summary
493
+ valueType: string
494
+ inputType: textarea
495
+ - slug: fitBand
496
+ label: Fit Band
497
+ valueType: string
498
+ inputType: select
499
+ enumValues:
500
+ - weak
501
+ - early_salvageable
502
+ - promising_with_rework
503
+ - strong_candidate
504
+ - highly_competitive
505
+ - slug: confidenceBand
506
+ label: Confidence Band
507
+ valueType: string
508
+ inputType: select
509
+ enumValues:
510
+ - low
511
+ - medium
512
+ - high
513
+ - slug: confidenceScore
514
+ label: Confidence (0-100)
515
+ valueType: number
516
+ inputType: number
517
+ - slug: businessQualityScore
518
+ label: Business Quality (0-100)
519
+ valueType: number
520
+ inputType: number
521
+ - slug: businessQualityBand
522
+ label: Business Quality Band
523
+ valueType: string
524
+ inputType: select
525
+ enumValues:
526
+ - weak
527
+ - early_salvageable
528
+ - promising_with_rework
529
+ - strong_candidate
530
+ - highly_competitive
531
+ - slug: stellarFitScore
532
+ label: Chain Fit (0-100)
533
+ valueType: number
534
+ inputType: number
535
+ - slug: stellarFitBand
536
+ label: Chain Fit Band
537
+ valueType: string
538
+ inputType: select
539
+ enumValues:
540
+ - weak
541
+ - early_salvageable
542
+ - promising_with_rework
543
+ - strong_candidate
544
+ - highly_competitive
545
+ - slug: scfPassScoreCurrent
546
+ label: Program Pass Current (0-100)
547
+ valueType: number
548
+ inputType: number
549
+ - slug: scfPassBand
550
+ label: Program Pass Band
551
+ valueType: string
552
+ inputType: select
553
+ enumValues:
554
+ - weak
555
+ - early_salvageable
556
+ - promising_with_rework
557
+ - strong_candidate
558
+ - highly_competitive
559
+ - slug: scfPassScoreImproved
560
+ label: Program Pass Improved (0-100)
561
+ valueType: number
562
+ inputType: number
563
+ - slug: archUpliftScore
564
+ label: Advisory Uplift (0-100)
565
+ valueType: number
566
+ inputType: number
567
+ - slug: archUpliftBand
568
+ label: Advisory Uplift Band
569
+ valueType: string
570
+ inputType: select
571
+ enumValues:
572
+ - weak
573
+ - early_salvageable
574
+ - promising_with_rework
575
+ - strong_candidate
576
+ - highly_competitive
577
+ - slug: consultingLeadScore
578
+ label: Consulting Lead (0-100)
579
+ valueType: number
580
+ inputType: number
581
+ - slug: consultingLeadBand
582
+ label: Consulting Lead Band
583
+ valueType: string
584
+ inputType: select
585
+ enumValues:
586
+ - weak
587
+ - early_salvageable
588
+ - promising_with_rework
589
+ - strong_candidate
590
+ - highly_competitive
591
+ - slug: positionedCompetitivenessScore
592
+ label: Positioned Competitiveness (0-100)
593
+ valueType: number
594
+ inputType: number
595
+ - slug: recommendedAmountRange
596
+ label: Recommended Amount Range
597
+ valueType: string
598
+ inputType: text
599
+ - slug: strengths
600
+ label: Strengths (JSON)
601
+ valueType: json
602
+ inputType: json
603
+ - slug: weaknesses
604
+ label: Weaknesses (JSON)
605
+ valueType: json
606
+ inputType: json
607
+ - slug: missingInformation
608
+ label: Missing Info (JSON)
609
+ valueType: json
610
+ inputType: json
611
+ - slug: rewritePoints
612
+ label: Rewrite Priorities (JSON)
613
+ valueType: json
614
+ inputType: json
615
+ - slug: similarSubmissionIds
616
+ label: Similar Submission IDs (JSON)
617
+ valueType: json
618
+ inputType: json
619
+ - slug: blockers
620
+ label: Blockers (JSON)
621
+ valueType: json
622
+ inputType: json
623
+ - slug: positioningAngles
624
+ label: Positioning Angles (JSON)
625
+ valueType: json
626
+ inputType: json
627
+ - slug: generatedByModel
628
+ label: Generated By Model
629
+ valueType: string
630
+ inputType: text
631
+ - slug: visibility
632
+ label: Visibility
633
+ valueType: string
634
+ inputType: select
635
+ enumValues:
636
+ - public
637
+ - internal
638
+ # ── Signal (recurring pattern across submissions) ─────────────────────────
639
+ - slug: signal
640
+ displayName: Signal
641
+ icon: radio
642
+ color: pink
643
+ description: Recurring pattern observed across submissions.
644
+ scope: WORKSPACE
645
+ properties:
646
+ - slug: signalType
647
+ label: Type
648
+ valueType: string
649
+ inputType: text
650
+ - slug: description
651
+ label: Description
652
+ valueType: string
653
+ inputType: textarea
654
+ - slug: evidenceSubmissionIds
655
+ label: Evidence Submission IDs (JSON)
656
+ valueType: json
657
+ inputType: json
658
+ - slug: weight
659
+ label: Weight (0-1)
660
+ valueType: number
661
+ inputType: number
662
+ - slug: categoryScope
663
+ label: Category Scope
664
+ valueType: string
665
+ inputType: text
666
+ - slug: roundScope
667
+ label: Round Scope
668
+ valueType: string
669
+ inputType: text
670
+ # ── Client (shared ecosystem role — SSOT is foundation.yaml) ──────────────
671
+ # `scope: shared` dedups to the ONE pod-wide `client` profile seeded by
672
+ # foundation; provisioning grants THIS workspace access to it (SHARED profiles
673
+ # are grant-gated, so the reference is required — dropping it would leave the
674
+ # role invisible here). Shapes match foundation verbatim, so no property drift.
675
+ - slug: client
676
+ displayName: Client
677
+ icon: briefcase
678
+ color: emerald
679
+ description: An active commercial relationship — created when a deal is won.
680
+ scope: shared
681
+ profileKind: role
682
+ applicableKinds:
683
+ - person
684
+ - company
685
+ properties:
686
+ - slug: clientStatus
687
+ label: Status
688
+ valueType: string
689
+ inputType: select
690
+ enumValues:
691
+ - prospect
692
+ - active
693
+ - paused
694
+ - former
695
+ - churned
696
+ - slug: accountManager
697
+ label: Account Manager
698
+ valueType: string
699
+ inputType: text
700
+ - slug: engagementStartDate
701
+ label: Engagement Start
702
+ valueType: date
703
+ inputType: date
704
+ - slug: satisfactionScore
705
+ label: Satisfaction
706
+ valueType: number
707
+ inputType: number
708
+ - slug: lifetimeValue
709
+ label: Lifetime Value
710
+ valueType: number
711
+ inputType: number
712
+ - slug: notes
713
+ label: Notes
714
+ valueType: string
715
+ inputType: textarea
716
+ - slug: contractValue
717
+ label: Contract Value
718
+ valueType: number
719
+ inputType: number
720
+ - slug: renewalDate
721
+ label: Renewal Date
722
+ valueType: date
723
+ inputType: date
724
+ - slug: healthScore
725
+ label: Health
726
+ valueType: string
727
+ inputType: select
728
+ enumValues:
729
+ - healthy
730
+ - at_risk
731
+ - critical
732
+ # ── Partner (shared ecosystem role — SSOT is foundation.yaml) ─────────────
733
+ - slug: partner
734
+ displayName: Partner
735
+ icon: handshake
736
+ color: teal
737
+ description: A partner relationship — both a referral source and a co-delivery collaborator, distinguished by partner type.
738
+ scope: shared
739
+ profileKind: role
740
+ applicableKinds:
741
+ - person
742
+ - company
743
+ properties:
744
+ - slug: partnerStatus
745
+ label: Status
746
+ valueType: string
747
+ inputType: select
748
+ enumValues:
749
+ - prospect
750
+ - active
751
+ - paused
752
+ - churned
753
+ - slug: partnerType
754
+ label: Partner Type
755
+ valueType: string
756
+ inputType: select
757
+ enumValues:
758
+ - referral
759
+ - co-delivery
760
+ - both
761
+ - slug: accountManager
762
+ label: Account Manager
763
+ valueType: string
764
+ inputType: text
765
+ - slug: engagementStartDate
766
+ label: Engagement Start
767
+ valueType: date
768
+ inputType: date
769
+ - slug: satisfactionScore
770
+ label: Satisfaction
771
+ valueType: number
772
+ inputType: number
773
+ - slug: lifetimeValue
774
+ label: Lifetime Value
775
+ valueType: number
776
+ inputType: number
777
+ - slug: notes
778
+ label: Notes
779
+ valueType: string
780
+ inputType: textarea
781
+ - slug: contractValue
782
+ label: Contract Value
783
+ valueType: number
784
+ inputType: number
785
+ - slug: renewalDate
786
+ label: Renewal Date
787
+ valueType: date
788
+ inputType: date
789
+ - slug: healthScore
790
+ label: Health
791
+ valueType: string
792
+ inputType: select
793
+ enumValues:
794
+ - healthy
795
+ - at_risk
796
+ - critical
797
+ # ── Sponsor (shared ecosystem role — SSOT is foundation.yaml) ─────────────
798
+ - slug: sponsor
799
+ displayName: Sponsor
800
+ icon: hand-coins
801
+ color: amber
802
+ description: A backer or sponsor of a program, round, or event.
803
+ scope: shared
804
+ profileKind: role
805
+ applicableKinds:
806
+ - person
807
+ - company
808
+ properties:
809
+ - slug: sponsorStatus
810
+ label: Status
811
+ valueType: string
812
+ inputType: select
813
+ enumValues:
814
+ - prospect
815
+ - active
816
+ - paused
817
+ - slug: sponsorType
818
+ label: Sponsor Type
819
+ valueType: string
820
+ inputType: text
821
+ - slug: notes
822
+ label: Notes
823
+ valueType: string
824
+ inputType: textarea
825
+
826
+ views:
827
+ - name: Pipeline
828
+ type: kanban
829
+ scopeProfileSlug: grant_submission
830
+ config:
831
+ groupByField: stage
832
+ cardFields:
833
+ - summary
834
+ - requestedAmount
835
+ - awardedAmount
836
+ - outcome
837
+ - status
838
+ - name: Submissions
839
+ type: table
840
+ scopeProfileSlug: grant_submission
841
+ config:
842
+ columns:
843
+ - title
844
+ - stage
845
+ - status
846
+ - outcome
847
+ - requestedAmount
848
+ - awardedAmount
849
+ - roundId
850
+ - projectId
851
+ sortBy: awardedAmount
852
+ sortDir: desc
853
+ - name: Rounds
854
+ type: table
855
+ scopeProfileSlug: round
856
+ config:
857
+ columns:
858
+ - roundNumber
859
+ - year
860
+ - status
861
+ - submissionDeadline
862
+ - totalAwarded
863
+ - awardedSubmissionsCount
864
+ - averageAwardAmount
865
+ sortBy: roundNumber
866
+ sortDir: desc
867
+ - name: Awarded Projects
868
+ type: gallery
869
+ scopeProfileSlug: grant-project
870
+ config:
871
+ coverField: summary
872
+ showFields:
873
+ - currentStatus
874
+ - awardedRoundCount
875
+ - submissionCount
876
+ - name: Analyses
877
+ type: table
878
+ scopeProfileSlug: analysis
879
+ config:
880
+ columns:
881
+ - analysisType
882
+ - subjectType
883
+ - fitBand
884
+ - confidenceBand
885
+ - positionedCompetitivenessScore
886
+ sortBy: positionedCompetitivenessScore
887
+ sortDir: desc
888
+ entityLinks:
889
+ - sourceProfileSlug: grant_submission
890
+ targetProfileSlug: grant-project
891
+ type: belongs_to
892
+ label: Project
893
+ - sourceProfileSlug: grant_submission
894
+ targetProfileSlug: round
895
+ type: submitted_to
896
+ label: Round
897
+ - sourceProfileSlug: grant_submission
898
+ targetProfileSlug: company
899
+ type: submitted_by
900
+ label: Submitted By
901
+ - sourceProfileSlug: grant-project
902
+ targetProfileSlug: round
903
+ type: appears_in
904
+ label: Appears in Round
905
+ - sourceProfileSlug: grant-project
906
+ targetProfileSlug: company
907
+ type: owned_by
908
+ label: Owning Company
909
+ - sourceProfileSlug: analysis
910
+ targetProfileSlug: grant_submission
911
+ type: analyzes
912
+ label: Analyzes
913
+ - sourceProfileSlug: signal
914
+ targetProfileSlug: grant_submission
915
+ type: evidenced_by
916
+ label: Evidenced By
917
+ app:
918
+ kind: stored
919
+ cellKey: entity-detail
920
+ layout:
921
+ defaultView: Pipeline
922
+ defaultApp: null
923
+ pinnedApps:
924
+ - dashboard
925
+ - data
926
+ sidebarItems:
927
+ - kind: view
928
+ viewName: Pipeline
929
+ label: Pipeline
930
+ icon: kanban-square
931
+ - kind: view
932
+ viewName: Submissions
933
+ label: Submissions
934
+ icon: file-text
935
+ - kind: view
936
+ viewName: Awarded Projects
937
+ label: Projects
938
+ icon: rocket
939
+ - kind: view
940
+ viewName: Rounds
941
+ label: Rounds
942
+ icon: calendar-clock
943
+ - kind: view
944
+ viewName: Analyses
945
+ label: Analyses
946
+ icon: brain
947
+ bento:
948
+ blocks:
949
+ - kind: widget
950
+ widgetType: welcome-header
951
+ pos:
952
+ x: 0
953
+ "y": 0
954
+ w: 12
955
+ h: 2
956
+ - kind: widget
957
+ widgetType: stat-card
958
+ pos:
959
+ x: 0
960
+ "y": 2
961
+ w: 3
962
+ h: 2
963
+ config:
964
+ label: Total Awarded
965
+ aggregation: sum
966
+ field: totalAwarded
967
+ profileSlug: round
968
+ format: currency
969
+ - kind: widget
970
+ widgetType: stat-card
971
+ pos:
972
+ x: 3
973
+ "y": 2
974
+ w: 3
975
+ h: 2
976
+ config:
977
+ label: Awarded Submissions
978
+ aggregation: count
979
+ profileSlug: grant_submission
980
+ filter:
981
+ outcome: awarded
982
+ - kind: widget
983
+ widgetType: stat-card
984
+ pos:
985
+ x: 6
986
+ "y": 2
987
+ w: 3
988
+ h: 2
989
+ config:
990
+ label: Rounds Tracked
991
+ aggregation: count
992
+ profileSlug: round
993
+ - kind: widget
994
+ widgetType: stat-card
995
+ pos:
996
+ x: 9
997
+ "y": 2
998
+ w: 3
999
+ h: 2
1000
+ config:
1001
+ label: Avg Award
1002
+ aggregation: avg
1003
+ field: averageAwardAmount
1004
+ profileSlug: round
1005
+ format: currency
1006
+ - kind: view
1007
+ viewName: Pipeline
1008
+ pos:
1009
+ x: 0
1010
+ "y": 4
1011
+ w: 8
1012
+ h: 6
1013
+ - kind: view
1014
+ viewName: Awarded Projects
1015
+ pos:
1016
+ x: 8
1017
+ "y": 4
1018
+ w: 4
1019
+ h: 6
1020
+ integrations:
1021
+ - templateKey: stellar-grant-client
1022
+ - templateKey: agency-skills
1023
+ - templateKey: nango-google
1024
+ - templateKey: discord-bot
1025
+ onboarding:
1026
+ goal: Capture the agency's live grant pipeline — the funding rounds and their deadlines, the projects being advised, and the open submissions in flight — so the workspace mirrors the real book of work, not a generic template.
1027
+ framing: "Act as a seasoned blockchain-grants advisor who has shepherded dozens of applications through programs like SCF, Optimism RetroPGF, and Arbitrum. Speak to how a submission actually wins: a crisp problem, a defensible reason the chain matters, evidence of traction, and milestones a reviewer can grade. Translate the founder's words into rounds, projects, and submissions on the pipeline."
1028
+ expertise:
1029
+ starters:
1030
+ - >
1031
+ Don't ask for a stage list on a blank slate — the pipeline already models the
1032
+ real arc: Scope → Abstract → Build → Awaiting Results. Anchor each live
1033
+ submission to where it actually sits and move from there.
1034
+ - >
1035
+ Every submission needs a one-sentence "why this chain" that a non-technical
1036
+ reviewer believes. Propose it as the spine of the abstract — most rejections
1037
+ trace back to a vague or missing chain-fit argument, not weak tech.
1038
+ - >
1039
+ Define milestones as gradeable deliverables tied to tranches (Deliverables →
1040
+ Testnet → Mainnet), not vague intentions. Reviewers release money against
1041
+ provable outcomes; frame each milestone as the thing they can check off.
1042
+ blindSpots:
1043
+ - >
1044
+ Founders under-invest in traction evidence. If a submission has no users,
1045
+ no signups, no letters of intent, surface that gap early — "promising idea,
1046
+ no proof" is the most common band a strong-idea application lands in.
1047
+ - >
1048
+ Missing the deadline is the silent killer. Every round has a submission
1049
+ deadline and a notification date — capture them up front and work backward,
1050
+ rather than discovering a round closed while a draft sat unfinished.
1051
+ - >
1052
+ Teams treat each round as a fresh start. The project is long-lived and spans
1053
+ rounds — a prior award, a prior rejection, and the reviewer feedback are the
1054
+ strongest inputs to the next submission. Link submissions to the project so
1055
+ that history compounds.
1056
+ bar: >
1057
+ Every open submission is anchored to a real round with a known deadline, tied to
1058
+ a project that carries its cross-round history, has a one-sentence chain-fit
1059
+ argument and gradeable tranche milestones, and sits at an honest stage — so a
1060
+ glance at the pipeline tells the truth about what's winnable and what's at risk.
1061
+ collect:
1062
+ - profileSlug: round
1063
+ what: The funding rounds you're targeting, with their deadlines and notification dates
1064
+ cardinality: few
1065
+ keyFields:
1066
+ - roundNumber
1067
+ - status
1068
+ - submissionDeadline
1069
+ - notificationDate
1070
+ - profileSlug: grant-project
1071
+ what: The projects/initiatives you're advising through the pipeline
1072
+ cardinality: several
1073
+ keyFields:
1074
+ - summary
1075
+ - websiteUrl
1076
+ - currentStatus
1077
+ - profileSlug: grant_submission
1078
+ what: The open applications in flight right now
1079
+ cardinality: few
1080
+ keyFields:
1081
+ - summary
1082
+ - stage
1083
+ - requestedAmount
1084
+ - projectId
1085
+ - roundId
1086
+ - profileSlug: company
1087
+ what: The applicant companies you work with as clients (attach the client facet)
1088
+ cardinality: several
1089
+ keyFields:
1090
+ - title
1091
+ - website
1092
+ openingQuestions:
1093
+ - Which grant rounds are you targeting right now, and when do they close?
1094
+ - Which projects are you advising through the pipeline?
1095
+ - What applications are in flight, and what stage is each at?
1096
+ doneWhen: The targeted rounds exist with deadlines, the advised projects exist, and the live submissions are placed on the pipeline at an honest stage and linked to their project and round.