@easysociable/cli 0.1.2 → 0.1.4
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/README.md +32 -21
- package/{skills/easysociable-content → content-engine}/scripts/starter.mjs +3 -1
- package/{skills/easysociable-content → content-engine}/scripts/workbench.mjs +13 -8
- package/{skills/easysociable-content → content-engine}/starter/CLAUDE.md +217 -128
- package/{skills/easysociable-content → content-engine}/starter/engine.json +3 -0
- package/content-engine/starter/needs/README.md +38 -0
- package/content-engine/starter/needs/_index.md +31 -0
- package/content-engine/starter/needs/_template.md +24 -0
- package/content-engine/starter/needs/entries/README.md +5 -0
- package/content-engine/starter/products/README.md +38 -0
- package/content-engine/starter/products/_index.md +24 -0
- package/content-engine/starter/products/_template.md +56 -0
- package/content-engine/starter/products/entries/P-001-easysociable.md +150 -0
- package/content-engine/starter/profiles/_index.md +16 -0
- package/{skills/easysociable-content → content-engine}/starter/profiles/default/README.md +4 -1
- package/content-engine/starter/profiles/default/boundaries.md +14 -0
- package/content-engine/starter/profiles/default/expression.md +18 -0
- package/content-engine/starter/profiles/default/lanes.md +12 -0
- package/content-engine/starter/profiles/default/stories.md +15 -0
- package/{skills/easysociable-content → content-engine}/starter/profiles/default/voice.md +14 -0
- package/content-engine/starter/recommendations/README.md +21 -0
- package/content-engine/starter/recommendations/_index.md +21 -0
- package/content-engine/starter/recommendations/_template.md +44 -0
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/brief.md +1 -1
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/pack.md +15 -7
- package/{skills/easysociable-content → content-engine}/starter/runs/_template/packet.md +6 -0
- package/{skills/easysociable-content → content-engine}/starter/swipe/_template.md +3 -1
- package/content-engine/starter/topics/README.md +21 -0
- package/{skills/easysociable-content → content-engine}/starter/topics/_index.md +12 -5
- package/content-engine/starter/topics/_template-item.md +103 -0
- package/{skills/easysociable-content → content-engine}/starter/topics/scoring.md +55 -4
- package/content-engine/workbench/__pycache__/build.cpython-310.pyc +0 -0
- package/{skills/easysociable-content → content-engine}/workbench/build.py +306 -97
- package/{skills/easysociable-content → content-engine}/workbench/serve.py +0 -0
- package/{skills/easysociable-content → content-engine}/workbench/template.html +173 -27
- package/dist/easysociable.js +629 -142
- package/dist/easysociable.js.map +1 -1
- package/package.json +15 -15
- package/skills/ONBOARDING.md +21 -18
- package/skills/easysociable-content/SKILL.md +104 -98
- package/skills/easysociable-content/workflows/INTERVIEW.md +70 -0
- package/skills/easysociable-content/workflows/NEEDS.md +82 -0
- package/skills/easysociable-slideshow/SKILL.md +79 -44
- package/skills/easysociable-slideshow/references/ARC.md +44 -0
- package/skills/easysociable-slideshow/references/CONTENT_PACK.md +34 -6
- package/skills/easysociable-slideshow/workflows/CREATE_RUN.md +24 -5
- package/skills/easysociable-slideshow/workflows/OUT_OF_SCOPE.md +3 -0
- package/skills/easysociable-template/SKILL.md +29 -30
- package/skills/easysociable-template/references/CATALOG_METADATA.md +23 -20
- package/skills/easysociable-template/references/DESIGN_V2_1.md +53 -2
- package/skills/easysociable-template/references/GATEWAY.md +7 -2
- package/skills/easysociable-template/references/PLATFORM_SPECS.md +11 -3
- package/skills/easysociable-template/references/THEME_TOKENS.md +1 -1
- package/skills/easysociable-template/references/fixtures/image-reference.design-plan.json +74 -0
- package/skills/easysociable-template/references/fixtures/image-reference.visual-qa.json +28 -0
- package/skills/easysociable-template/scripts/generate-theme-from-hex.mjs +0 -0
- package/skills/easysociable-template/scripts/validate-design-v2.mjs +97 -0
- package/skills/easysociable-template/workflows/ASSET_PLAN.md +2 -1
- package/skills/easysociable-template/workflows/AUTHORING_FROM_BRIEF.md +4 -4
- package/skills/easysociable-template/workflows/AUTHORING_FROM_IMAGE.md +66 -16
- package/skills/easysociable-template/workflows/AUTHORING_STUDIO.md +28 -15
- package/skills/easysociable-template/workflows/DESIGN_BRIEF.md +4 -3
- package/skills/easysociable-template/workflows/FILL_AND_RENDER.md +4 -83
- package/skills/easysociable-template/workflows/MULTI_PLATFORM_FAMILY.md +81 -0
- package/skills/easysociable-template/workflows/OUT_OF_SCOPE.md +3 -2
- package/skills/easysociable-template/workflows/PUBLISH_FROM_DRAFT.md +1 -1
- package/skills/easysociable-template/workflows/VISUAL_QA.md +10 -0
- package/skills/easysociable-content/INSTALL.md +0 -60
- package/skills/easysociable-content/platforms/claude.md +0 -4
- package/skills/easysociable-content/platforms/codex.md +0 -4
- package/skills/easysociable-content/platforms/hermes.md +0 -4
- package/skills/easysociable-content/platforms/openclaw.md +0 -4
- package/skills/easysociable-content/references/CLI.md +0 -40
- package/skills/easysociable-content/references/CONTRACT_SYNC.md +0 -42
- package/skills/easysociable-content/references/MCP.md +0 -15
- package/skills/easysociable-content/references/PAGE_PACK.md +0 -129
- package/skills/easysociable-content/references/PLATFORM_GUIDE.md +0 -36
- package/skills/easysociable-content/references/RUN_LAYOUT.md +0 -73
- package/skills/easysociable-content/references/TROUBLESHOOTING.md +0 -13
- package/skills/easysociable-content/references/VAULT.md +0 -40
- package/skills/easysociable-content/references/VOICE.md +0 -16
- package/skills/easysociable-content/scripts/package-skill.mjs +0 -49
- package/skills/easysociable-content/scripts/setup.mjs +0 -200
- package/skills/easysociable-content/scripts/setup.test.mjs +0 -82
- package/skills/easysociable-content/starter/discovery/README.md +0 -18
- package/skills/easysociable-content/starter/discovery/_index.md +0 -27
- package/skills/easysociable-content/starter/discovery/_template.md +0 -41
- package/skills/easysociable-content/starter/profiles/_index.md +0 -13
- package/skills/easysociable-content/starter/topics/README.md +0 -25
- package/skills/easysociable-content/starter/topics/WATCHLIST.md +0 -65
- package/skills/easysociable-content/starter/topics/_template-item.md +0 -90
- package/skills/easysociable-content/starter/topics/watchlists/README.md +0 -10
- package/skills/easysociable-content/starter/topics/watchlists/_shared.md +0 -14
- package/skills/easysociable-content/starter/topics/watchlists/default.md +0 -6
- package/skills/easysociable-content/workflows/ANALYSIS_AND_COVERAGE.md +0 -17
- package/skills/easysociable-content/workflows/CONTENT_EXPORT.md +0 -24
- package/skills/easysociable-content/workflows/GETTING_STARTED.md +0 -40
- package/skills/easysociable-content/workflows/MCP_FIRST.md +0 -5
- package/skills/easysociable-content/workflows/OUT_OF_SCOPE.md +0 -18
- package/skills/easysociable-content/workflows/PACK_AUTHORING.md +0 -42
- package/skills/easysociable-content/workflows/SWIPE_CAPTURE.md +0 -18
- package/skills/easysociable-content/workflows/TOPIC_DRAFT.md +0 -29
- package/skills/easysociable-content/workflows/WORKING_DRAFT.md +0 -19
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/draft.md +0 -0
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/idea.md +0 -0
- /package/{skills/easysociable-content → content-engine}/fixtures/golden-run-en/pack-tiktok.json +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/contracts.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/export-contracts.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/fixture.test.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-export.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-pack.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate-run.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/scripts/validate.test.mjs +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/accounts/overrides/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/exports/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/inbox/entries/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/ig.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/instagram.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/linkedin.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/threads.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/tiktok.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/x.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/platforms/xiaohongshu.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/profiles/default/audience.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/profiles/default/pillars.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/published/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/raw/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/raw/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/draft.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/editor.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/feedback.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/idea.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/runs/_template/rubric.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/swipe/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/topics/items/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/README.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/atoms/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/atoms/_template.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/claims/_index.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/wiki/claims/_template.md +0 -0
- /package/{skills/easysociable-content → content-engine}/starter/workbench/README.md +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# products/
|
|
2
|
+
|
|
3
|
+
First-class **product facts library**. Products describe what the creator
|
|
4
|
+
offers; they are not audience needs, topics, or published claims.
|
|
5
|
+
|
|
6
|
+
| Path | Role |
|
|
7
|
+
|------|------|
|
|
8
|
+
| `_index.md` | Product registry and lifecycle |
|
|
9
|
+
| `entries/P-*.md` | Product facts, boundaries, pricing, proof and claims |
|
|
10
|
+
| `_template.md` | Product entry shape |
|
|
11
|
+
|
|
12
|
+
## Relationship to the content engine
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Needs (demand evidence) + Profile (identity)
|
|
16
|
+
→ Topic (editorial judgment)
|
|
17
|
+
→ optional Product fit (offer context)
|
|
18
|
+
→ Run
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- A `Need` records what an audience member actually said.
|
|
22
|
+
- A `Product` records what is currently offered and what it does not promise.
|
|
23
|
+
- A `Topic` decides whether something is worth saying. It may cite zero, one, or
|
|
24
|
+
several products.
|
|
25
|
+
- Product fit never makes a Topic `ready` by itself, and a product description
|
|
26
|
+
never becomes a Need quote.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
- Keep product facts current. Prices and entitlements must include an
|
|
31
|
+
`effective_from` date and a source of truth.
|
|
32
|
+
- Do not invent customers, outcomes, metrics, testimonials or proof.
|
|
33
|
+
- Mark a product `retired` instead of silently deleting a product used by a
|
|
34
|
+
Topic or Run.
|
|
35
|
+
- Use `product_fit: none` for useful education that does not need a product
|
|
36
|
+
connection. Do not force a CTA into every Topic.
|
|
37
|
+
- Product claims here describe the offer. The `wiki/claims/` catalog tracks
|
|
38
|
+
propositions tested through published content; they are different objects.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Products index
|
|
2
|
+
|
|
3
|
+
Newest rows on top. This is the registry; product facts live in the entry
|
|
4
|
+
file.
|
|
5
|
+
|
|
6
|
+
| id | name | status | audience | price | effective_from | file |
|
|
7
|
+
|----|------|--------|----------|-------|----------------|------|
|
|
8
|
+
| P-001 | EasySociable | active | creators and teams producing branded multi-page social visuals | see entry | 2026-09-04 | products/entries/P-001-easysociable.md |
|
|
9
|
+
|
|
10
|
+
## Status values
|
|
11
|
+
|
|
12
|
+
| status | Meaning |
|
|
13
|
+
|--------|---------|
|
|
14
|
+
| `draft` | Being defined; do not use for product claims |
|
|
15
|
+
| `active` | Current offer; may be cited by Topics and Runs |
|
|
16
|
+
| `retired` | No longer offered; retained for historical references |
|
|
17
|
+
|
|
18
|
+
## Agent rules
|
|
19
|
+
|
|
20
|
+
- Read the product entry before making a product claim.
|
|
21
|
+
- `price` is a lookup hint only; use the dated entry for exact pricing and
|
|
22
|
+
entitlements.
|
|
23
|
+
- A Topic may cite `product_ids: none` even when the account has active
|
|
24
|
+
products.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: P-YYYYMMDD-XX
|
|
3
|
+
name:
|
|
4
|
+
status: draft
|
|
5
|
+
effective_from: YYYY-MM-DD
|
|
6
|
+
source_of_truth:
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Product name
|
|
10
|
+
|
|
11
|
+
## Product promise
|
|
12
|
+
|
|
13
|
+
One sentence describing the customer change. Do not promise an outcome the
|
|
14
|
+
product cannot control.
|
|
15
|
+
|
|
16
|
+
## What it is
|
|
17
|
+
|
|
18
|
+
## Best for
|
|
19
|
+
|
|
20
|
+
## Not for
|
|
21
|
+
|
|
22
|
+
## Problem
|
|
23
|
+
|
|
24
|
+
## Mechanism
|
|
25
|
+
|
|
26
|
+
How the product addresses the problem.
|
|
27
|
+
|
|
28
|
+
## Not solving
|
|
29
|
+
|
|
30
|
+
Explicit exclusions and limitations.
|
|
31
|
+
|
|
32
|
+
## Pricing and entitlements
|
|
33
|
+
|
|
34
|
+
Include currency, billing period, limits and plan differences. Record the
|
|
35
|
+
effective date above.
|
|
36
|
+
|
|
37
|
+
## Proof
|
|
38
|
+
|
|
39
|
+
Named evidence only. Empty is valid.
|
|
40
|
+
|
|
41
|
+
## Objections
|
|
42
|
+
|
|
43
|
+
## Claims
|
|
44
|
+
|
|
45
|
+
### Safe to say
|
|
46
|
+
|
|
47
|
+
### Say carefully
|
|
48
|
+
|
|
49
|
+
### Do not say
|
|
50
|
+
|
|
51
|
+
## CTA
|
|
52
|
+
|
|
53
|
+
When to educate, mention, invite, or sell.
|
|
54
|
+
|
|
55
|
+
## Version notes
|
|
56
|
+
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: P-001
|
|
3
|
+
name: EasySociable
|
|
4
|
+
status: active
|
|
5
|
+
effective_from: 2026-09-04
|
|
6
|
+
source_of_truth:
|
|
7
|
+
- docs/prd.md
|
|
8
|
+
- docs/pricing-v1.md
|
|
9
|
+
- apps/easysociable/app/routes/home.tsx
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# EasySociable
|
|
13
|
+
|
|
14
|
+
## Product promise
|
|
15
|
+
|
|
16
|
+
Turn an agent-produced content argument into a reusable, branded,
|
|
17
|
+
reviewable, multi-page social visual pack.
|
|
18
|
+
|
|
19
|
+
## What it is
|
|
20
|
+
|
|
21
|
+
EasySociable is the hosted visual production layer for an external Agent. It
|
|
22
|
+
provides reusable Page Templates, Brands, durable Slideshow Runs, Studio
|
|
23
|
+
review/editing, and browser Download of the reviewed PNG pack.
|
|
24
|
+
|
|
25
|
+
The Agent supplies the content reasoning and page structure. EasySociable does
|
|
26
|
+
not write the content or provide a hosted LLM.
|
|
27
|
+
|
|
28
|
+
## Best for
|
|
29
|
+
|
|
30
|
+
- Creators who already use Codex, Claude Code, or a comparable Agent for
|
|
31
|
+
content reasoning.
|
|
32
|
+
- Creators and teams producing branded carousels across TikTok, Instagram,
|
|
33
|
+
LinkedIn, or Threads.
|
|
34
|
+
- Operators who need reusable visual systems, role-specific layouts, and a
|
|
35
|
+
review step before download.
|
|
36
|
+
|
|
37
|
+
## Not for
|
|
38
|
+
|
|
39
|
+
- Users looking for a browser-only content writing assistant.
|
|
40
|
+
- Users who want a general-purpose freeform design editor instead of a
|
|
41
|
+
constrained reusable visual system.
|
|
42
|
+
- Users who want EasySociable to manage their social accounts or publish
|
|
43
|
+
automatically.
|
|
44
|
+
|
|
45
|
+
## Problem
|
|
46
|
+
|
|
47
|
+
An Agent can produce the argument, but the visual production context is often
|
|
48
|
+
lost: each carousel starts from a blank design, brand instructions are
|
|
49
|
+
repeated, and a small revision can require regeneration.
|
|
50
|
+
|
|
51
|
+
When one idea must become several platform deliverables, the operator also has
|
|
52
|
+
to repeat layout and export work while checking platform-specific canvases.
|
|
53
|
+
|
|
54
|
+
## Mechanism
|
|
55
|
+
|
|
56
|
+
- Page Templates are discoverable by layout role such as `cover`, `hook`,
|
|
57
|
+
`value`, `steps`, `proof`, and `cta`, so a content structure can be matched
|
|
58
|
+
to an appropriate visual layout.
|
|
59
|
+
- A Brand and reusable templates persist visual decisions across future Runs.
|
|
60
|
+
- Studio keeps the complete Run reviewable and allows supported text and image
|
|
61
|
+
slot edits before Download.
|
|
62
|
+
- Platform-specific Layout Family variants and exports adapt the same
|
|
63
|
+
structured content to supported canvas presets.
|
|
64
|
+
|
|
65
|
+
## Not solving
|
|
66
|
+
|
|
67
|
+
- Content strategy, audience research, or the quality of the Agent's thesis.
|
|
68
|
+
- Guaranteed reach, engagement, conversions, or viral performance.
|
|
69
|
+
- Automatic social posting or social-account connection.
|
|
70
|
+
- A hosted LLM or a replacement for the user's Agent.
|
|
71
|
+
- Unlimited arbitrary canvas editing or unrestricted template composition.
|
|
72
|
+
|
|
73
|
+
## Pricing and entitlements
|
|
74
|
+
|
|
75
|
+
Early-access prices; list prices and free limits may change.
|
|
76
|
+
|
|
77
|
+
| Plan | Monthly | Annual | Slideshow Download | Brands | Image library |
|
|
78
|
+
|------|---------|--------|--------------------|--------|---------------|
|
|
79
|
+
| Free | $0 | — | 3/month, 1 platform per pack | 1 | 2 GB |
|
|
80
|
+
| Creator | $19 | $190/year | Unlimited, all selected V1 platforms | 5 | 50 GB |
|
|
81
|
+
| Pro | $39 | $390/year | Unlimited, all selected V1 platforms | 25 | 200 GB |
|
|
82
|
+
| Agency | Sales-led | Contract | Contract | >25 | >200 GB |
|
|
83
|
+
|
|
84
|
+
Paid plans include the full system-template catalog, up to 20 pages per
|
|
85
|
+
Slideshow Run, private drafts, three API keys, no overage and no watermark.
|
|
86
|
+
Pixels leave the product through Studio Download; CLI/MCP is not a final PNG
|
|
87
|
+
factory.
|
|
88
|
+
|
|
89
|
+
## Proof
|
|
90
|
+
|
|
91
|
+
No customer proof is recorded here. Do not invent testimonials, adoption
|
|
92
|
+
metrics or performance improvements.
|
|
93
|
+
|
|
94
|
+
## Objections
|
|
95
|
+
|
|
96
|
+
### “Canva already does this.”
|
|
97
|
+
|
|
98
|
+
Canva is the broader freeform design workspace. EasySociable is for an
|
|
99
|
+
Agent-first, repeatable visual production workflow with role-aware templates,
|
|
100
|
+
durable Runs and Studio review.
|
|
101
|
+
|
|
102
|
+
### “Can the Agent write my post?”
|
|
103
|
+
|
|
104
|
+
The Agent can do that outside EasySociable. EasySociable owns the visual
|
|
105
|
+
production layer.
|
|
106
|
+
|
|
107
|
+
### “Can I publish directly?”
|
|
108
|
+
|
|
109
|
+
V1 produces a reviewed Download from Studio. It does not connect social
|
|
110
|
+
accounts or publish posts.
|
|
111
|
+
|
|
112
|
+
## Claims
|
|
113
|
+
|
|
114
|
+
### Safe to say
|
|
115
|
+
|
|
116
|
+
- Reuse saved Brands and Page Templates.
|
|
117
|
+
- Select layouts by supported page role.
|
|
118
|
+
- Review and edit supported slots in Studio before Download.
|
|
119
|
+
- Create platform-specific variants for supported V1 platforms and canvases.
|
|
120
|
+
|
|
121
|
+
### Say carefully
|
|
122
|
+
|
|
123
|
+
- “One idea, multiple platforms” means the structured Run is adapted and
|
|
124
|
+
exported for supported platform formats; it does not mean one identical file
|
|
125
|
+
is valid everywhere.
|
|
126
|
+
- “Faster” requires a user-specific baseline. Do not claim a universal time
|
|
127
|
+
saving.
|
|
128
|
+
- “Branded” means the configured Brand and selected templates are applied; it
|
|
129
|
+
does not mean every creative decision is automatically correct.
|
|
130
|
+
|
|
131
|
+
### Do not say
|
|
132
|
+
|
|
133
|
+
- “Guaranteed higher engagement.”
|
|
134
|
+
- “One-click automatic publishing.”
|
|
135
|
+
- “AI writes all your content.”
|
|
136
|
+
- “No review is needed.”
|
|
137
|
+
- “Every platform receives the same file.”
|
|
138
|
+
|
|
139
|
+
## CTA
|
|
140
|
+
|
|
141
|
+
- `educate`: explain the Agent-to-visual production gap.
|
|
142
|
+
- `mention`: show how a role-specific template or Brand persists.
|
|
143
|
+
- `invite`: ask users to try a real content Run and review it in Studio.
|
|
144
|
+
- `sell`: use only when the audience has a validated need for repeated
|
|
145
|
+
branded visual production.
|
|
146
|
+
|
|
147
|
+
## Version notes
|
|
148
|
+
|
|
149
|
+
- 2026-09-04: early-access pricing and V1 entitlements from
|
|
150
|
+
`docs/pricing-v1.md`.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Profiles index
|
|
2
|
+
|
|
3
|
+
Reusable **content profiles**: pillars + audience + voice.
|
|
4
|
+
Accounts point here; do not copy profile bodies into account files.
|
|
5
|
+
|
|
6
|
+
| id | path | voice | one_liner | accounts | product_ids | recommendation_scope |
|
|
7
|
+
|----|------|-------|-----------|----------|-------------|---------------------|
|
|
8
|
+
| default | profiles/default/ | `profiles/default/voice.md` | Replace this one-liner with the profile’s job | your-handle | none | none |
|
|
9
|
+
|
|
10
|
+
## Voice column
|
|
11
|
+
|
|
12
|
+
- Empty or `profile` → load `profiles/<id>/voice.md`
|
|
13
|
+
- Explicit path → load that file instead
|
|
14
|
+
|
|
15
|
+
`profiles/<id>/lanes.md` describes publishing lanes such as teaching, building,
|
|
16
|
+
reviewing and comparing. A lane is not a replacement for a pillar.
|
|
@@ -6,6 +6,9 @@ Replace this starter profile before the first serious draft.
|
|
|
6
6
|
|------|------|
|
|
7
7
|
| `pillars.md` | Topics this profile may cover |
|
|
8
8
|
| `audience.md` | Readers + per-platform emphasis |
|
|
9
|
-
| `voice.md` | Identity +
|
|
9
|
+
| `voice.md` | Identity + Experience + Values + Persona |
|
|
10
|
+
| `stories.md` | Story inventory (cite or none) |
|
|
11
|
+
| `boundaries.md` | Creator must-avoid (Not covering / Never claim) |
|
|
12
|
+
| `expression.md` | Expression likes / dislikes |
|
|
10
13
|
|
|
11
14
|
Accounts: see `accounts/_index.md`.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Boundaries — profile `default`
|
|
2
|
+
|
|
3
|
+
**Role:** Topics, audiences, and claims this creator will not write.
|
|
4
|
+
**Not:** Audience “Not for” (`./audience.md`) — that excludes readers.
|
|
5
|
+
|
|
6
|
+
Missing this file is a **hard-gate fail**. Write this starter, then interview. Never invent boundaries.
|
|
7
|
+
|
|
8
|
+
## Not covering
|
|
9
|
+
|
|
10
|
+
- (fill)
|
|
11
|
+
|
|
12
|
+
## Never claim
|
|
13
|
+
|
|
14
|
+
- (fill)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Expression — profile `default`
|
|
2
|
+
|
|
3
|
+
**Role:** Concrete likes and dislikes (phrases, structures, clichés).
|
|
4
|
+
**Not:** Hype bans (`./voice.md` Do not say).
|
|
5
|
+
|
|
6
|
+
Missing this file = `profile: partial`, not a hard-gate fail.
|
|
7
|
+
|
|
8
|
+
## Likes
|
|
9
|
+
|
|
10
|
+
1. (fill)
|
|
11
|
+
2. (fill)
|
|
12
|
+
3. (fill)
|
|
13
|
+
|
|
14
|
+
## Dislikes
|
|
15
|
+
|
|
16
|
+
1. (fill)
|
|
17
|
+
2. (fill)
|
|
18
|
+
3. (fill)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Content lanes
|
|
2
|
+
|
|
3
|
+
Lanes describe how this profile publishes, not what the profile is about.
|
|
4
|
+
Pillars remain the durable subjects.
|
|
5
|
+
|
|
6
|
+
| id | name | purpose | status |
|
|
7
|
+
|----|------|---------|--------|
|
|
8
|
+
| teach | Teaching | Explain systems, mechanisms and workflows | active |
|
|
9
|
+
| build | Building in public | Share implementation decisions and lessons | active |
|
|
10
|
+
| review | Tool review | Review third-party AI products with evidence | active |
|
|
11
|
+
| compare | Tool comparison | Compare options by a stated user job | active |
|
|
12
|
+
| offer | Product education | Explain owned product mechanisms and limits | active |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Stories — profile `default`
|
|
2
|
+
|
|
3
|
+
**Role:** Narrative inventory the draft may cite.
|
|
4
|
+
**Not:** Identity table facts (`./voice.md` Experience).
|
|
5
|
+
|
|
6
|
+
0–1 stories is enough for a first session (`profile: partial`). Skip if the user has none they will make public.
|
|
7
|
+
|
|
8
|
+
## Stories
|
|
9
|
+
|
|
10
|
+
### S1 — (title)
|
|
11
|
+
|
|
12
|
+
- **Situation:** (fill)
|
|
13
|
+
- **Choice:** (fill)
|
|
14
|
+
- **Lesson:** (fill)
|
|
15
|
+
- **Public:** yes | no
|
|
@@ -13,12 +13,26 @@
|
|
|
13
13
|
| **Point of view** | (fill) |
|
|
14
14
|
| **Not claiming** | Invented metrics, customers, quotes, or team size |
|
|
15
15
|
|
|
16
|
+
## Experience
|
|
17
|
+
|
|
18
|
+
Facts copy may cite (year, role, thing done). Write `not claiming` when unknown.
|
|
19
|
+
|
|
20
|
+
- (fill)
|
|
21
|
+
|
|
22
|
+
## Values
|
|
23
|
+
|
|
24
|
+
Claims this profile will always make / will never make. Repeatable topics go in `pillars.md`, not here.
|
|
25
|
+
|
|
26
|
+
- (fill)
|
|
27
|
+
|
|
16
28
|
## Persona
|
|
17
29
|
|
|
30
|
+
- (fill)
|
|
18
31
|
- Direct. Concrete nouns. Address the reader as **you**.
|
|
19
32
|
- Do not invent bio facts not listed in Identity.
|
|
20
33
|
|
|
21
34
|
## Do not say
|
|
22
35
|
|
|
36
|
+
- (fill)
|
|
23
37
|
- Fake social proof
|
|
24
38
|
- Empty hype (“game-changer”, “unlock your potential”)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# recommendations/
|
|
2
|
+
|
|
3
|
+
First-class **third-party product and tool library**. This is separate from
|
|
4
|
+
`products/`: entries here are products the profile may review, compare, or
|
|
5
|
+
recommend, not products EasySociable owns or sells.
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Profile + Needs + review evidence
|
|
9
|
+
→ Topic
|
|
10
|
+
→ optional recommendation_ids
|
|
11
|
+
→ Run
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- Do not treat a recommendation as an owned Product or as a product CTA.
|
|
17
|
+
- Do not copy vendor marketing claims into `quote` or evidence.
|
|
18
|
+
- Record the research date and source URLs. Prices and features can change.
|
|
19
|
+
- Record affiliate, sponsorship, or other commercial relationships when known.
|
|
20
|
+
- A recommendation needs a review basis: observed workflow, named source,
|
|
21
|
+
comparison, or user-provided evidence. An empty entry is not a review.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Recommendations index
|
|
2
|
+
|
|
3
|
+
Third-party tools and products available for review or comparison. No starter
|
|
4
|
+
entries are provided.
|
|
5
|
+
|
|
6
|
+
| id | name | status | category | profiles | pillars | last_researched | relationship | file |
|
|
7
|
+
|----|------|--------|----------|----------|---------|-----------------|--------------|------|
|
|
8
|
+
| -- | ---- | ------ | -------- | -------- | ------- | --------------- | ------------ | ---- |
|
|
9
|
+
|
|
10
|
+
## Status values
|
|
11
|
+
|
|
12
|
+
| status | Meaning |
|
|
13
|
+
|--------|---------|
|
|
14
|
+
| `candidate` | Captured for possible research; not publishable |
|
|
15
|
+
| `researched` | Evidence and limits recorded |
|
|
16
|
+
| `active` | Available for Topics and reviews |
|
|
17
|
+
| `retired` | No longer maintained or relevant |
|
|
18
|
+
|
|
19
|
+
`profiles` is a comma-separated many-to-many association. Use `*` only when
|
|
20
|
+
the subject is intentionally shared across all profiles. `pillars` records
|
|
21
|
+
where the subject is relevant; it does not make the subject an owned product.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: R-YYYYMMDD-XX
|
|
3
|
+
name:
|
|
4
|
+
status: candidate
|
|
5
|
+
category:
|
|
6
|
+
profiles: default
|
|
7
|
+
pillars:
|
|
8
|
+
last_researched: YYYY-MM-DD
|
|
9
|
+
relationship: none | affiliate | sponsor | client | other
|
|
10
|
+
source_urls:
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Recommendation subject
|
|
14
|
+
|
|
15
|
+
## What it is
|
|
16
|
+
|
|
17
|
+
## Best for
|
|
18
|
+
|
|
19
|
+
## Not for
|
|
20
|
+
|
|
21
|
+
## Problem addressed
|
|
22
|
+
|
|
23
|
+
## Observed workflow
|
|
24
|
+
|
|
25
|
+
## Strengths
|
|
26
|
+
|
|
27
|
+
## Limitations
|
|
28
|
+
|
|
29
|
+
## Alternatives
|
|
30
|
+
|
|
31
|
+
## Pricing snapshot
|
|
32
|
+
|
|
33
|
+
Include currency, plan, limits and date. Do not assume the price is current.
|
|
34
|
+
|
|
35
|
+
## Evidence
|
|
36
|
+
|
|
37
|
+
Named sources, tests, screenshots, or user reports. Empty is not publishable.
|
|
38
|
+
|
|
39
|
+
## Disclosure
|
|
40
|
+
|
|
41
|
+
State affiliate, sponsorship, ownership, or other commercial relationship.
|
|
42
|
+
|
|
43
|
+
## Review notes
|
|
44
|
+
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
# PagePack — this run is already one platform (image decks only; not pure x text)
|
|
3
3
|
# Prefer filename: pack.md (or pack-<platform>.md)
|
|
4
4
|
# Create when: user wants carousel/slideshow AND rubric SHIP for this run.
|
|
5
|
+
# Write the Arc line before pages. Do not default Cover → Point → Steps → Recap → CTA.
|
|
5
6
|
---
|
|
6
7
|
status: unused
|
|
7
8
|
id:
|
|
@@ -20,23 +21,30 @@ page_count: 0
|
|
|
20
21
|
- **claim_id:**
|
|
21
22
|
- **language:** en
|
|
22
23
|
|
|
24
|
+
## Arc
|
|
25
|
+
|
|
26
|
+
<!-- One line: the argument that needs page turns. Required before Pages. -->
|
|
27
|
+
<!-- Recipes: cost-mechanism | listicle | mistakes | claim-proof | compare | (named) -->
|
|
28
|
+
|
|
29
|
+
- **one_liner:**
|
|
30
|
+
- **recipe:**
|
|
31
|
+
|
|
23
32
|
## Pages
|
|
24
33
|
|
|
25
|
-
<!-- Each page: role
|
|
34
|
+
<!-- Each page: role is a layout retrieval tag, not sequence position. -->
|
|
35
|
+
<!-- First page is not automatically cover. Text only — no private AST. -->
|
|
26
36
|
|
|
27
37
|
### page 1
|
|
28
38
|
|
|
29
|
-
- **role:**
|
|
39
|
+
- **role:**
|
|
30
40
|
- **slots:**
|
|
31
|
-
-
|
|
32
|
-
- subtitle:
|
|
41
|
+
- text_0:
|
|
33
42
|
|
|
34
43
|
### page 2
|
|
35
44
|
|
|
36
|
-
- **role:**
|
|
45
|
+
- **role:**
|
|
37
46
|
- **slots:**
|
|
38
|
-
-
|
|
39
|
-
- body:
|
|
47
|
+
- text_0:
|
|
40
48
|
|
|
41
49
|
<!-- …repeat through page_count… -->
|
|
42
50
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# topics/
|
|
2
|
+
|
|
3
|
+
Topic system: **what to produce next**, after an explicit need, offer, review subject, or profile thesis has been judged as an opportunity.
|
|
4
|
+
|
|
5
|
+
| Path | Role |
|
|
6
|
+
|------|------|
|
|
7
|
+
| `_index.md` | Queue registry (one row per topic + `item` link + source engagement) |
|
|
8
|
+
| `items/T-*.md` | One file per opportunity: decision summary + readable judgment, then Score/Trace/Constraints appendix |
|
|
9
|
+
| `scoring.md` | Opportunity dimensions and dual gate |
|
|
10
|
+
| `_template-item.md` | Template for new items |
|
|
11
|
+
|
|
12
|
+
Flow:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
explicit input → editorial judgment
|
|
16
|
+
→ `_index` + `items/T-…` (opportunity 5-dim)
|
|
17
|
+
→ ready only if opp≥7.5 and audience≥6
|
|
18
|
+
→ user opens run → `status=promoted`
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The item file is a **decision card**. A content owner who skips YAML and the appendix must still answer: what problem we address, who it serves, what we will say, why now, what should change, and whether to open a run. Five-dim scores stay in the appendix as a gate, not as the reading surface.
|
|
@@ -6,8 +6,8 @@ Statuses live here and in the item—**not** folder names.
|
|
|
6
6
|
|
|
7
7
|
Newest on top.
|
|
8
8
|
|
|
9
|
-
| id | date | opp | aud | status | purpose | scout | platform | pillar | one_liner | item | source_type | src_url | src_handle | src_likes | src_replies | src_bookmarks | engagement_at | capture_id | run |
|
|
10
|
-
| -- | ---- | --- | --- | ------ | ------- | ----- | -------- | ------ | --------- | ---- | ----------- | ------- | ---------- | --------- | ----------- | ------------- | ------------- | ---------- | --- |
|
|
9
|
+
| id | date | opp | aud | status | purpose | scout | platform | pillar | lane | generation_mode | one_liner | item | source_type | src_url | src_handle | src_likes | src_replies | src_bookmarks | engagement_at | capture_id | need_ids | product_ids | product_fit | recommendation_ids | run |
|
|
10
|
+
| -- | ---- | --- | --- | ------ | ------- | ----- | -------- | ------ | --------- | ---- | ----------- | ------- | ---------- | --------- | ----------- | ------------- | ------------- | ---------- | --- | --- | --- | --- |
|
|
11
11
|
|
|
12
12
|
## Status values
|
|
13
13
|
|
|
@@ -29,16 +29,23 @@ Newest on top.
|
|
|
29
29
|
| `opp` | Opportunity score (weighted 5-dim: context/audience/conflict/insight/evidence) |
|
|
30
30
|
| `aud` | Audience dimension score (hard floor ≥ 6 for ready) |
|
|
31
31
|
| `item` | Wikilink to `topics/items/T-….md` |
|
|
32
|
-
| `
|
|
32
|
+
| `lane` | Publishing lane: teach, build, review, compare, offer, or profile-defined |
|
|
33
|
+
| `generation_mode` | How the Topic was formed; see `topics/_template-item.md` |
|
|
34
|
+
| `source_type` | `inbox` \| `user` \| `need` \| `product` \| `recommendation` |
|
|
33
35
|
| `src_*` | **Source post** engagement snapshot — not your publish metrics |
|
|
34
|
-
| `capture_id` | Set only if linked to inbox `C
|
|
36
|
+
| `capture_id` | Set only if linked to inbox `C-…`. **Never** put `N-` here; needs live on the item as `need_ids` |
|
|
37
|
+
| `need_ids` | Audience evidence cited by the Topic; demand evidence, not product proof |
|
|
38
|
+
| `product_ids` | Optional product facts cited by the Topic |
|
|
39
|
+
| `product_fit` | `direct` \| `adjacent` \| `none`; editorial relevance only |
|
|
40
|
+
| `recommendation_ids` | Optional third-party subjects used for review or comparison |
|
|
35
41
|
| `run` | One or more `RUN-…` ids after open (comma-separated if multi-platform siblings) |
|
|
36
42
|
|
|
37
43
|
## Rules
|
|
38
44
|
|
|
39
45
|
- Max **5** new **`produce`** topics per promotion session
|
|
40
|
-
-
|
|
46
|
+
- Topics require an explicit user, need, product, recommendation, or profile input.
|
|
41
47
|
- Scout first; never `ready` on high `src_*` or opp_score alone (need audience ≥ 6 too)
|
|
42
48
|
- Scoring: `topics/scoring.md` (opportunity dimensions)
|
|
49
|
+
- Product fit is optional and never replaces Need evidence or opportunity scoring.
|
|
43
50
|
- `记一下` + URL: **inbox first**, not topics, unless user also asks to score as topic
|
|
44
51
|
- On 开一单: append all new run ids to `run`
|