@geoly-ai/social-hub-cli 0.3.18 → 0.3.20
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/CHANGELOG.md +29 -0
- package/dist/cmd-manifest.json +4 -2
- package/dist/content-review.test.js +1 -1
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -8
- package/dist/index.js.map +1 -1
- package/dist/register-calendar-directives.d.ts +64 -0
- package/dist/register-calendar-directives.d.ts.map +1 -0
- package/dist/register-calendar-directives.js +135 -0
- package/dist/register-calendar-directives.js.map +1 -0
- package/dist/register-calendar-directives.test.d.ts +2 -0
- package/dist/register-calendar-directives.test.d.ts.map +1 -0
- package/dist/register-calendar-directives.test.js +127 -0
- package/dist/register-calendar-directives.test.js.map +1 -0
- package/dist/scrape-output.test.d.ts +2 -0
- package/dist/scrape-output.test.d.ts.map +1 -0
- package/dist/scrape-output.test.js +58 -0
- package/dist/scrape-output.test.js.map +1 -0
- package/package.json +2 -2
- package/skills/README.md +23 -22
- package/skills/manifest.json +6 -1
- package/skills/reddit-content-rewrite/SKILL.md +29 -0
- package/skills/reddit-content-writing/SKILL.md +54 -5
- package/skills/reddit-content-writing/references/phase4-execution-table.md +24 -3
- package/skills/reddit-content-writing/references/phase4-writing.md +123 -3
- package/skills/reddit-content-writing/references/post-writing-templates.md +14 -6
- package/skills/reddit-delivery-check/SKILL.md +39 -6
- package/skills/reddit-delivery-check/references/phase5-delivery.md +7 -1
- package/skills/reddit-matrix.lock.json +10 -10
- package/skills/reddit-phase-brief/SKILL.md +62 -11
- package/skills/reddit-phase-brief/references/brand-SKU-PGC-rules.md +223 -36
- package/skills/reddit-phase-brief/references/phase4-brief-workflow.md +405 -19
- package/skills/reddit-phase-planning/SKILL.md +13 -0
- package/skills/reddit-phase-planning/references/phase4-execution-table.md +16 -2
- package/skills/reddit-phase-planning/references/phase4-planning.md +74 -15
- package/skills/reddit-phase-planning/references/scheduling-decision-procedure.md +386 -0
- package/skills/reddit-phase-research/SKILL.md +7 -1
- package/skills/reddit-phase-research/references/phase01-research.md +93 -29
- package/skills/reddit-strategy-orchestrator/SKILL.md +120 -18
- package/skills/reddit-strategy-shared/SKILL.md +4 -2
- package/skills/reddit-strategy-shared/references/content-diversity-contract.md +26 -5
- package/skills/reddit-strategy-shared/references/content-review-gate.md +48 -1
- package/skills/reddit-strategy-shared/references/context-contract.md +45 -11
- package/skills/reddit-strategy-shared/references/evidence-policy.md +139 -0
- package/skills/reddit-strategy-shared/references/handoff-schemas.md +88 -3
- package/skills/reddit-strategy-shared/references/native-copy-profile.md +207 -0
- package/skills/reddit-strategy-shared/references/path-conventions.md +26 -4
- package/skills/reddit-strategy-shared/references/persona-card-contract.md +210 -0
- package/skills/reddit-strategy-shared/references/prerequisites/README.md +57 -0
- package/skills/reddit-strategy-shared/references/prerequisites/{reddit-master-canvas-agent-prompt-template.md → archive/reddit-master-canvas-agent-prompt-template.md} +7 -0
- package/skills/reddit-strategy-shared/references/prerequisites/{reddit-sop-v2-universal.md → archive/reddit-sop-v2-universal.md} +7 -0
- package/skills/reddit-strategy-shared/references/prerequisites/{reddit-strategy-prerequisites-read.md → archive/reddit-strategy-prerequisites-read.md} +7 -0
- package/skills/reddit-strategy-shared/references/prerequisites/{reddit-strategy-reuse-playbook.md → archive/reddit-strategy-reuse-playbook.md} +7 -0
- package/skills/reddit-strategy-shared/references/subreddit-research-profile.md +514 -0
- package/skills/reddit-strategy-shared/references/version-manifest.md +89 -2
- package/skills/reddit-subreddit-compliance/SKILL.md +28 -1
- package/skills/reddit-voc-volume/matrix-contract.md +16 -1
- package/skills/social-hub-calendar-directives/SKILL.md +548 -0
- package/skills/social-hub-calendar-jobs/SKILL.md +10 -0
- package/skills/social-hub-cli/SKILL.md +2 -0
- package/skills/social-hub-notifications/SKILL.md +7 -0
- package/skills/social-hub-publishing/SKILL.md +5 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# Persona Card Contract
|
|
2
|
+
|
|
3
|
+
The **Persona Card** is the per-draft posting context: why this account is
|
|
4
|
+
posting this now, what it may legitimately be assumed to know, what it must not
|
|
5
|
+
claim to know, and which firsthand experience claims are authorised.
|
|
6
|
+
|
|
7
|
+
It is a **Brief-stage artifact**. The writer never authors one.
|
|
8
|
+
|
|
9
|
+
**Scope: `ArtifactType: Post` only.** Comments, replies, and titles carry no
|
|
10
|
+
Persona Card and no `PersonaCardRef`. The full knowledge-boundary and disclosure
|
|
11
|
+
judgement for comments is a later stage of work; do not let this contract turn
|
|
12
|
+
into a required field on comment rows.
|
|
13
|
+
|
|
14
|
+
## 1. Why it is not part of the persona record
|
|
15
|
+
|
|
16
|
+
`personas` / `account_personas` describe **WHO** the account is — archetype, age
|
|
17
|
+
range, occupation, tone, avoid-topics, style guide. Those are stable.
|
|
18
|
+
|
|
19
|
+
`postingWhy`, this draft's `knows` / `doesNotKnow`, this draft's brand
|
|
20
|
+
relationship, and the facts this draft is allowed to use are **per-submission**.
|
|
21
|
+
Their lifecycle is the draft's, not the persona's. Recording them on the persona
|
|
22
|
+
would make every later draft inherit one draft's context.
|
|
23
|
+
|
|
24
|
+
`avoidTopics` / `avoidPatterns` say what the account **should not say**. The Card
|
|
25
|
+
says what the account **does not know**. These are different constraints and one
|
|
26
|
+
does not substitute for the other.
|
|
27
|
+
|
|
28
|
+
## 2. Capability model, not role taxonomy
|
|
29
|
+
|
|
30
|
+
The Card describes **access and permitted claims**, never a role name.
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
PersonaCardRef: # stable local id, unique per post ContentKey
|
|
34
|
+
PersonaCardVersion: # integer, incremented by reddit-phase-brief only
|
|
35
|
+
PersonaCardHash: # sha256 over the normalised Card body
|
|
36
|
+
|
|
37
|
+
# ── stable capability fields ──
|
|
38
|
+
knowledgeAccess: # exactly one: research | owned | used | observed | supplied_by_brand
|
|
39
|
+
permittedExperienceClaims: # subset of the closed set {ownership, delivery, wear, service}; may be empty
|
|
40
|
+
attentionFocus: # what this account actually cares about in this category
|
|
41
|
+
questionIntent: # what it is actually trying to find out, if anything
|
|
42
|
+
|
|
43
|
+
# ── per-draft fields ──
|
|
44
|
+
postingWhy: # why this account is posting this, now
|
|
45
|
+
knows: # list; what it may be assumed to know here
|
|
46
|
+
doesNotKnow: # list; what it must not display knowledge of here
|
|
47
|
+
permittedFactRefs: # references to approved product facts usable in this draft
|
|
48
|
+
brandRelationshipDisclosed: # Yes | No | NotApplicable — what the draft states, not what is true
|
|
49
|
+
|
|
50
|
+
# ── provenance ──
|
|
51
|
+
DeclaredBy: # who authorised this Card's claims (person or role), not the agent
|
|
52
|
+
ClaimAuthorizationRef: # the submitted material that authorises permittedExperienceClaims
|
|
53
|
+
|
|
54
|
+
# ── transport ──
|
|
55
|
+
PersonaCardTransportStatus: LocalOnly(ServerContractMissing)
|
|
56
|
+
PersonaCardAuthorizationStatus: Authorized | DeclaredOnly | NotApplicable
|
|
57
|
+
RoleLabels: # optional, non-authoritative; see §3
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`knowledgeAccess` is single-valued because it answers "where did this account's
|
|
61
|
+
information come from". `permittedExperienceClaims` is a multi-select closed set
|
|
62
|
+
because one account can legitimately be authorised for some firsthand claims and
|
|
63
|
+
not others — "may say the item arrived" and "may describe wearing it" are
|
|
64
|
+
separate authorisations.
|
|
65
|
+
|
|
66
|
+
An empty `permittedExperienceClaims` is a valid, common Card. It means the draft
|
|
67
|
+
may discuss the category from research or observation and may **not** claim
|
|
68
|
+
ownership, delivery, wear, or service experience.
|
|
69
|
+
|
|
70
|
+
## 3. Role names are labels, never judgement
|
|
71
|
+
|
|
72
|
+
`Researcher` / `Owner` / `GiftBuyer` / `CategoryEnthusiast` / `LifestyleUser` may
|
|
73
|
+
appear in `RoleLabels` as a convenience for humans reading the Brief. They are
|
|
74
|
+
**not** a classification, **not** exhaustive, and **never** the basis of any
|
|
75
|
+
check.
|
|
76
|
+
|
|
77
|
+
One account is legitimately both an Owner and a CategoryEnthusiast. No role name
|
|
78
|
+
can express "may this draft say the parcel arrived" — only
|
|
79
|
+
`permittedExperienceClaims` can. Any check that reads `RoleLabels` instead of the
|
|
80
|
+
capability fields is wrong.
|
|
81
|
+
|
|
82
|
+
Likewise, do not derive a rule such as "a gift buyer must not discuss
|
|
83
|
+
specifications". Buying a gift for a technical hobbyist makes specifications the
|
|
84
|
+
core of the post.
|
|
85
|
+
|
|
86
|
+
## 4. Lifecycle: assigned, never improvised
|
|
87
|
+
|
|
88
|
+
The Card is the **third** `PrewritingControlField`, alongside `AssignedFlair` and
|
|
89
|
+
`PostingTrigger`. Same discipline as those two:
|
|
90
|
+
|
|
91
|
+
| Stage | Duty |
|
|
92
|
+
| ------------------------ | ------------------------------------------------------------------------------- |
|
|
93
|
+
| `reddit-phase-brief` | **Owns** the Card. Creates it, versions it, writes `PersonaCardRef` per post Key |
|
|
94
|
+
| `reddit-content-writing` | Reads it. Writes within it. May not author, extend, or reinterpret it |
|
|
95
|
+
| `reddit-content-rewrite` | Reads it. Preserves `PersonaCardRef`. May not author or edit one |
|
|
96
|
+
| `reddit-delivery-check` | Verifies the delivered row's `PersonaCardRef` / `PersonaCardHash` match the Brief |
|
|
97
|
+
|
|
98
|
+
A draft that needs a knowledge boundary the Card does not grant is a
|
|
99
|
+
`BlockingGap` back to `reddit-phase-brief` for a new Card version — not a local
|
|
100
|
+
edit and not a Card the writer fills in. Letting the writer author the Card
|
|
101
|
+
re-opens exactly the bypass that pre-assignment exists to close: the writer would
|
|
102
|
+
grant itself whatever boundary the draft it already wrote happens to need.
|
|
103
|
+
|
|
104
|
+
Changing the Card bumps `PersonaCardVersion` and invalidates `PersonaCardHash`
|
|
105
|
+
downstream: any row already checked against the old hash must be re-checked.
|
|
106
|
+
|
|
107
|
+
## 5. What the Card does **not** establish
|
|
108
|
+
|
|
109
|
+
- **It does not verify identity.** In ContentOnly / persona-less work the Card is
|
|
110
|
+
a *declared, auditable posting context* and nothing more. Never report it as a
|
|
111
|
+
confirmed account persona check, and never let its presence imply the posting
|
|
112
|
+
account was resolved.
|
|
113
|
+
- **It does not prove any experience is real.** No local check and no model can
|
|
114
|
+
establish that a parcel actually arrived. The Card records what is
|
|
115
|
+
**authorised**, and authorisation comes from the submitted context, not from
|
|
116
|
+
inference about the relationship.
|
|
117
|
+
- **A Card without provenance records a declaration, not an authorisation.**
|
|
118
|
+
`PersonaCardHash` makes a Card tamper-evident; it says nothing about who granted
|
|
119
|
+
the claims in it. `DeclaredBy` + `ClaimAuthorizationRef` are what make
|
|
120
|
+
`permittedExperienceClaims` auditable. A Card carrying `permittedExperienceClaims`
|
|
121
|
+
with neither field is describing what the Brief asserted, and must be reported
|
|
122
|
+
that way — never as an authorised claim set. The generating agent is never a
|
|
123
|
+
valid `DeclaredBy`.
|
|
124
|
+
|
|
125
|
+
This distinction must survive the handoff, or it is unauditable: a downstream
|
|
126
|
+
reader seeing only "self-check passed" and "reference preserved" cannot tell an
|
|
127
|
+
authorised claim set from an asserted one. So the Brief sets
|
|
128
|
+
`PersonaCardAuthorizationStatus` and every stage carries it through:
|
|
129
|
+
|
|
130
|
+
| Value | Meaning |
|
|
131
|
+
| --------------- | ------------------------------------------------------------------------------------ |
|
|
132
|
+
| `Authorized` | `permittedExperienceClaims` non-empty, with both `DeclaredBy` and `ClaimAuthorizationRef` |
|
|
133
|
+
| `DeclaredOnly` | `permittedExperienceClaims` non-empty, provenance incomplete — a Brief assertion |
|
|
134
|
+
| `NotApplicable` | `permittedExperienceClaims` empty — there is no experience claim to authorise |
|
|
135
|
+
|
|
136
|
+
`DeclaredOnly` does not by itself block: the local boundary check still runs and
|
|
137
|
+
the Hub gate is unchanged. It does mean no output may describe the claim set as
|
|
138
|
+
authorised, and it is the honest state to report to a client asking on what
|
|
139
|
+
basis a firsthand claim was permitted. Like the rest of the Card, this status is
|
|
140
|
+
local and is never sent to Hub.
|
|
141
|
+
- **A brand relationship does not by itself make a firsthand claim false.** A
|
|
142
|
+
partner may genuinely own the product. The only self-evident contradiction is a
|
|
143
|
+
draft asserting an experience type the Card did not authorise.
|
|
144
|
+
|
|
145
|
+
## 6. Firsthand markers are evidence, not violations
|
|
146
|
+
|
|
147
|
+
Phrases such as "mine arrived", "I've had it since", "after a month of wearing
|
|
148
|
+
it" are **markers**, not offences. `mine arrived` is unremarkable when
|
|
149
|
+
`permittedExperienceClaims` includes `delivery`.
|
|
150
|
+
|
|
151
|
+
A marker matters only when it contradicts the Card: the draft claims an
|
|
152
|
+
experience type the Card did not authorise, or displays knowledge listed in
|
|
153
|
+
`doesNotKnow`. Report the contradiction, cite both the phrase and the Card field
|
|
154
|
+
it contradicts, and route back to Brief. Never flag a marker on its own.
|
|
155
|
+
|
|
156
|
+
## 7. Transport boundary — the Card stays local
|
|
157
|
+
|
|
158
|
+
**`PersonaCardTransportStatus` is `LocalOnly(ServerContractMissing)`.**
|
|
159
|
+
|
|
160
|
+
Social Hub has no field for the Card on the post-review or content-review
|
|
161
|
+
request, and both request schemas are strict: an extra field is a request
|
|
162
|
+
rejection, not an ignored key. Do not add the Card, any of its fields, or a
|
|
163
|
+
Card-derived score to a Hub review call. Do not restructure the Card into an
|
|
164
|
+
existing free-text field (`subredditRules`, thread context) to smuggle it
|
|
165
|
+
through — that injects planner text into a prompt slot reserved for other
|
|
166
|
+
evidence.
|
|
167
|
+
|
|
168
|
+
So the Card governs **writing**: Brief assigns the boundary, the writer stays
|
|
169
|
+
inside it, delivery verifies the reference was preserved. Hub review runs
|
|
170
|
+
unchanged alongside it, and the Card changes nothing about how a Hub verdict is
|
|
171
|
+
read or reported.
|
|
172
|
+
|
|
173
|
+
The local boundary check therefore reports only what it is: a local check.
|
|
174
|
+
`ClaimEvidenceStatus` (`references/evidence-policy.md`) remains the authority on
|
|
175
|
+
whether a claim may appear in publishable text; the Card adds *who may claim it*
|
|
176
|
+
on top of *whether it is sourced*. Do not describe a local Card check as a review,
|
|
177
|
+
a verdict, a dimension, or a pass.
|
|
178
|
+
|
|
179
|
+
## 8. Local boundary self-check (writing side)
|
|
180
|
+
|
|
181
|
+
Before handing a draft to Hub review, for each post row:
|
|
182
|
+
|
|
183
|
+
1. Every firsthand experience claim in the draft maps to an entry in
|
|
184
|
+
`permittedExperienceClaims`.
|
|
185
|
+
2. Nothing in the draft displays knowledge listed in `doesNotKnow`.
|
|
186
|
+
3. Every substantive product claim still satisfies `ClaimEvidenceStatus`
|
|
187
|
+
(`Cited` or `ExternallyVerified`) — the Card never relaxes this.
|
|
188
|
+
4. The draft's stated relationship matches `brandRelationshipDisclosed`.
|
|
189
|
+
5. `postingWhy` is consistent with the assigned `PostingTrigger`. These are
|
|
190
|
+
different fields and neither replaces the other: `PostingTrigger` is the
|
|
191
|
+
controlled five-value reason the post is worth making now
|
|
192
|
+
(`references/content-diversity-contract.md`), `postingWhy` is this account's
|
|
193
|
+
own reason for making it. A draft whose `postingWhy` cannot coexist with the
|
|
194
|
+
assigned `PostingTrigger` is a `BlockingGap` back to Brief.
|
|
195
|
+
|
|
196
|
+
Record the outcome as `PersonaCardSelfCheck: Pass | BlockingGap`, with the
|
|
197
|
+
contradicting phrase and Card field for every gap. This is a local pre-submission
|
|
198
|
+
check. It never substitutes for Hub review and never produces a score.
|
|
199
|
+
|
|
200
|
+
## 9. Deferred Hub mapping
|
|
201
|
+
|
|
202
|
+
The plan `docs/reddit-native-copy-integration-plan.md` (§2, §3.4, §6.4) intends a
|
|
203
|
+
server-side knowledge-boundary judgement that would consume a persisted,
|
|
204
|
+
snapshotted version of this Card. That contract does not exist yet: there is no
|
|
205
|
+
request field, no persisted snapshot, and no corresponding review dimension.
|
|
206
|
+
|
|
207
|
+
This note is informational. Until such a contract ships and its capability is
|
|
208
|
+
echoed by the server, no skill may name a knowledge-boundary review dimension,
|
|
209
|
+
report a knowledge-boundary review status, or claim any part of the Card was
|
|
210
|
+
assessed by Hub.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# prerequisites/ — 归档区索引
|
|
2
|
+
|
|
3
|
+
| 路径 | AgentReadPolicy |
|
|
4
|
+
| ----------------------- | ------------------------------------------ |
|
|
5
|
+
| `prerequisites/archive/`| **DoNotRead** — 仅供人工查阅 |
|
|
6
|
+
| 本文件 `README.md` | 可读,但**不是必读**;它只是索引,不含规则 |
|
|
7
|
+
|
|
8
|
+
`archive/` **不属于任何 skill 的运行上下文**。全流程任务(orchestrator → research →
|
|
9
|
+
planning → brief → writing → delivery)在任何阶段都**不得**读取 `archive/` 下的文件,
|
|
10
|
+
也不得把其中任何内容当作 gate、schema、字段清单、结构规则或写作规范。本 README 本身
|
|
11
|
+
只做「谁是权威」的转发和缺口登记,读它不会把 legacy 规则带进上下文。
|
|
12
|
+
|
|
13
|
+
## 为什么
|
|
14
|
+
|
|
15
|
+
`archive/` 下的四份文件归档前共 1,994 行(现为 2,026 行,多出的是本轮加的归档 banner),全部标注 `LegacyStatus: Superseded`,
|
|
16
|
+
文件自己声明「不得执行其中的任何 gate / schema / 结构规则」。但它们的正文与
|
|
17
|
+
active 契约**逐条重复**(2:8 配比、P-NB→C-B 互补、编号预分配、板块 ≤40%、
|
|
18
|
+
品牌词聚合验证、外部评论 URL 规程等),模型无法区分「声明不作数」与
|
|
19
|
+
「内容看起来是硬规则」,结果是 Phase 0 之前先吞 2,488 行(shared 契约 5 份 494 行 + 本目录 1,994 行)、其中 80.1% 是噪声。
|
|
20
|
+
这些重复的规则在 active 文件里都有权威版本(见下表),legacy 版本只是复述。
|
|
21
|
+
|
|
22
|
+
## 现在谁是权威
|
|
23
|
+
|
|
24
|
+
| 主题 | 权威文件(active) |
|
|
25
|
+
| ----------------------------- | ------------------------------------------------------------------------- |
|
|
26
|
+
| 结构 / 帖型 / StructureFamily | `reddit-strategy-shared/references/content-type-routing-contract.md` |
|
|
27
|
+
| 执行表 19 列 + 门禁 | `reddit-phase-planning/references/phase4-execution-table.md` + `scripts/phase406_verify.py` |
|
|
28
|
+
| 编号预分配 / 板块分布 / 品牌词聚合 | `reddit-phase-planning/references/phase4-planning.md` |
|
|
29
|
+
| 21 板 Master Canvas | `reddit-phase-planning/references/phase3-master-canvas.md` |
|
|
30
|
+
| VOC 四维采样 / 缺口矩阵 | `reddit-phase-research/references/phase01-research.md` |
|
|
31
|
+
| 品牌词互补 / 2:8 | `reddit-content-writing/references/phase4-post-rules.md` |
|
|
32
|
+
| 逐帖终检 | `reddit-content-rewrite` 三层终检清单 |
|
|
33
|
+
| 证据与验证边界 | `reddit-strategy-shared/references/evidence-policy.md` |
|
|
34
|
+
| 板块研究画像(SRP) | `reddit-strategy-shared/references/subreddit-research-profile.md` |
|
|
35
|
+
| 排期决策(板块 / flair / 数量配比) | `reddit-phase-planning/references/scheduling-decision-procedure.md`(D1–D7) |
|
|
36
|
+
| 停下来问人的 12 个决策点 | `reddit-strategy-orchestrator/SKILL.md` §Human Decision Points |
|
|
37
|
+
|
|
38
|
+
## ✅ 已回填的规则真空(曾只在 archive,现已有 active 权威版本)
|
|
39
|
+
|
|
40
|
+
下面两条原本**只**存在于 archive,已按原意搬进 active 文件(未扩写、未新增规则)。
|
|
41
|
+
**权威版本在 active,本表只做溯源**;archive 仍然不读。
|
|
42
|
+
|
|
43
|
+
| 原缺口 | archive 出处 | 现在的 active 权威位置 | 状态 |
|
|
44
|
+
| ------------------------ | --------------------------------------- | -------------------------------------------------------------------------------------- | ---- |
|
|
45
|
+
| 「量」换算与总盘子 | `reddit-strategy-reuse-playbook.md` §8.2 | `reddit-phase-planning/references/phase4-planning.md` 步骤 **4.0.0.0**(+ Phase 4.0.0 门禁一条;启动变量登记在 `context-contract.md`) | 已回填 |
|
|
46
|
+
| 外部评论的 A/B readout 口径 | `reddit-strategy-reuse-playbook.md` §8.3 / §12 | `reddit-phase-planning/references/phase4-planning.md` Phase **4.0.5** A/B 口径框(`context-contract.md` 启动变量记默认值) | 已回填 |
|
|
47
|
+
|
|
48
|
+
另有一条**疑似已废弃**、不确定是否还要:playbook §8.4 要求 B 组唯一变量同时包含
|
|
49
|
+
**Ahrefs query** 与 **ChatGPT fanout**;active(`reddit-phase-planning/references/phase4-planning.md`)
|
|
50
|
+
只保留了 fanout。若现行设计就是 fanout-only,这是有意收窄,不是真空。
|
|
51
|
+
|
|
52
|
+
## 什么时候人可以看 archive/
|
|
53
|
+
|
|
54
|
+
只在做 SOP 考古时:想知道某条规则**当初为什么这么定**、某个数字(如 9+3、
|
|
55
|
+
2:8)的历史来源、或者对比 v1 → v2 的演进。**人**读,**agent** 不读。
|
|
56
|
+
需要把 archive 里的某条规则重新变成硬规则时,正确做法是把它**搬进上表的
|
|
57
|
+
active 文件**并走版本号,而不是恢复对本目录的强制阅读。
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Reddit Master Canvas Agent Prompt 模板
|
|
2
2
|
|
|
3
|
+
> ## ⛔ ARCHIVED — AgentReadPolicy: DoNotRead
|
|
4
|
+
>
|
|
5
|
+
> 本文件已移出 skill 运行上下文,**仅供人工查阅 SOP 历史背景**。
|
|
6
|
+
> agent 在任何阶段都不得读取本文件,也不得引用其中任何内容作为
|
|
7
|
+
> gate / schema / 字段清单 / 结构规则 / 写作规范。权威来源见
|
|
8
|
+
> `../README.md` 的对照表。
|
|
9
|
+
|
|
3
10
|
**结论:** 这份模板的目标,是让任意一个 agent 在更换 topic、产品、关键词和数据源后,仍然能稳定产出与当前 Soundcore Reddit master canvas 同构的总控文档。**建议用法:** 先填写任务变量区,再把后面的标准 Agent Prompt 整段复制给下一个 agent。**主要风险:** 如果输入数据不完整,agent 很容易跳过证据层直接写策略,导致框架还在,但可信度不足。
|
|
4
11
|
|
|
5
12
|
## 模板目标
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Reddit GEO 策略 SOP v2 — 任意品牌通用入口
|
|
2
2
|
|
|
3
|
+
> ## ⛔ ARCHIVED — AgentReadPolicy: DoNotRead
|
|
4
|
+
>
|
|
5
|
+
> 本文件已移出 skill 运行上下文,**仅供人工查阅 SOP 历史背景**。
|
|
6
|
+
> agent 在任何阶段都不得读取本文件,也不得引用其中任何内容作为
|
|
7
|
+
> gate / schema / 字段清单 / 结构规则 / 写作规范。权威来源见
|
|
8
|
+
> `../README.md` 的对照表。
|
|
9
|
+
|
|
3
10
|
> Path note: shell examples use macOS/Linux `~/.cursor/skills/...`. On Windows PowerShell, use `$HOME\.cursor\skills\...` or `$SkillsRoot = Join-Path $HOME ".cursor\skills"`, replace `python3` with `py -3`, and replace line-continuation `\` with backtick `` ` ``.
|
|
4
11
|
>
|
|
5
12
|
> v2.12.19 authority note: Phase 0 is **three-source collaboration**: eclickkb fact verification + KG markdown positioning narrative + client information sheet. The current authoritative execution details live in `reddit-phase-research/references/phase01-research.md`; if this legacy universal entry is less specific, follow the matrix research skill and shared contracts.
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Reddit 策略启动前必读
|
|
2
2
|
|
|
3
|
+
> ## ⛔ ARCHIVED — AgentReadPolicy: DoNotRead
|
|
4
|
+
>
|
|
5
|
+
> 本文件已移出 skill 运行上下文,**仅供人工查阅 SOP 历史背景**。
|
|
6
|
+
> agent 在任何阶段都不得读取本文件,也不得引用其中任何内容作为
|
|
7
|
+
> gate / schema / 字段清单 / 结构规则 / 写作规范。权威来源见
|
|
8
|
+
> `../README.md` 的对照表。
|
|
9
|
+
|
|
3
10
|
**结论:** 只提供 Playbook 不够。Playbook 是「怎么做的 SOP」,品牌、地域、型号、Geoly、关键词文件等仍须你(或业务方)按 Playbook 第 15 节提供;缺 P0 时,Agent 只能写框架或标「无法验证」,没法做出与 soundcore 那套同等级数据型策略。
|
|
4
11
|
|
|
5
12
|
## 你最少还要准备什么(对齐 Playbook 第 15.1 P0)
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Reddit 策略复用 Playbook(跨品牌 SOP v2)
|
|
2
2
|
|
|
3
|
+
> ## ⛔ ARCHIVED — AgentReadPolicy: DoNotRead
|
|
4
|
+
>
|
|
5
|
+
> 本文件已移出 skill 运行上下文,**仅供人工查阅 SOP 历史背景**。
|
|
6
|
+
> agent 在任何阶段都不得读取本文件,也不得引用其中任何内容作为
|
|
7
|
+
> gate / schema / 字段清单 / 结构规则 / 写作规范。权威来源见
|
|
8
|
+
> `../README.md` 的对照表。
|
|
9
|
+
|
|
3
10
|
> Path note: shell examples use macOS/Linux `~/.cursor/skills/...`. On Windows PowerShell, use `$HOME\.cursor\skills\...` or `$SkillsRoot = Join-Path $HOME ".cursor\skills"`, replace `python3` with `py -3`, and replace line-continuation `\` with backtick `` ` ``.
|
|
4
11
|
>
|
|
5
12
|
> v2.12.19 authority note: Phase 0 is now **three-source collaboration**: eclickkb fact verification + KG markdown positioning narrative + client information sheet. If this legacy playbook sounds like "语料库 + 知识图谱" only, follow `reddit-phase-research/references/phase01-research.md` and the shared contracts instead. Client brief fields are Phase 0 required inputs, not Phase 1.5 optional follow-up.
|