campfire-cli 0.1.0__py3-none-any.whl
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.
- campfire_cli/__init__.py +3 -0
- campfire_cli/alembic/__init__.py +1 -0
- campfire_cli/alembic/env.py +37 -0
- campfire_cli/alembic/script.py.mako +22 -0
- campfire_cli/alembic/versions/001_initial_schema.py +81 -0
- campfire_cli/alembic/versions/002_workspace_project_registry.py +47 -0
- campfire_cli/alembic/versions/003_unified_workspace_state.py +113 -0
- campfire_cli/alembic/versions/004_restructure_workspace_domain.py +23 -0
- campfire_cli/alembic/versions/005_decision_channel.py +71 -0
- campfire_cli/alembic/versions/006_workspace_topology_index.py +61 -0
- campfire_cli/alembic/versions/007_workspace_adoption.py +38 -0
- campfire_cli/alembic/versions/__init__.py +1 -0
- campfire_cli/app/SPEC.md +12 -0
- campfire_cli/app/__init__.py +1 -0
- campfire_cli/app/base/SPEC.md +3 -0
- campfire_cli/app/base/__init__.py +1 -0
- campfire_cli/app/base/cli/base_cli.py +37 -0
- campfire_cli/app/base/repository/base_repository.py +17 -0
- campfire_cli/app/base/schema/base_schema.py +18 -0
- campfire_cli/app/base/service/base_service.py +129 -0
- campfire_cli/app/decision/SPEC.md +16 -0
- campfire_cli/app/decision/__init__.py +1 -0
- campfire_cli/app/decision/cli/decision_cli.py +112 -0
- campfire_cli/app/decision/repository/decision_repository.py +199 -0
- campfire_cli/app/decision/schema/decision_schema.py +56 -0
- campfire_cli/app/decision/service/decision_projection_service.py +151 -0
- campfire_cli/app/decision/service/decision_service.py +124 -0
- campfire_cli/app/document/SPEC.md +51 -0
- campfire_cli/app/document/__init__.py +1 -0
- campfire_cli/app/document/cli/__init__.py +1 -0
- campfire_cli/app/document/cli/document_cli.py +63 -0
- campfire_cli/app/document/cli/profile_cli.py +65 -0
- campfire_cli/app/document/cli/type_cli.py +49 -0
- campfire_cli/app/document/repository/__init__.py +1 -0
- campfire_cli/app/document/repository/document_profile_repository.py +17 -0
- campfire_cli/app/document/repository/document_type_repository.py +17 -0
- campfire_cli/app/document/service/__init__.py +1 -0
- campfire_cli/app/document/service/document_profile_service.py +66 -0
- campfire_cli/app/document/service/document_rule_service.py +316 -0
- campfire_cli/app/document/service/document_scanner.py +38 -0
- campfire_cli/app/document/service/document_service.py +139 -0
- campfire_cli/app/document/service/document_type_service.py +28 -0
- campfire_cli/app/document/service/frontmatter_apply.py +98 -0
- campfire_cli/app/document/service/frontmatter_formatter.py +104 -0
- campfire_cli/app/document/service/frontmatter_plan.py +75 -0
- campfire_cli/app/document/service/profile_registry.py +166 -0
- campfire_cli/app/document/service/type_apply.py +185 -0
- campfire_cli/app/document/service/type_plan.py +80 -0
- campfire_cli/app/maintenance/SPEC.md +22 -0
- campfire_cli/app/maintenance/__init__.py +1 -0
- campfire_cli/app/maintenance/cli/maintenance_cli.py +103 -0
- campfire_cli/app/maintenance/repository/maintenance_repository.py +115 -0
- campfire_cli/app/maintenance/schema/maintenance_schema.py +109 -0
- campfire_cli/app/maintenance/service/archive_service.py +255 -0
- campfire_cli/app/maintenance/service/link_service.py +91 -0
- campfire_cli/app/maintenance/service/maintenance_protocol.py +25 -0
- campfire_cli/app/maintenance/service/maintenance_service.py +461 -0
- campfire_cli/app/maintenance/service/moc_service.py +310 -0
- campfire_cli/app/maintenance/service/plan_service.py +411 -0
- campfire_cli/app/skill/SPEC.md +3 -0
- campfire_cli/app/skill/__init__.py +1 -0
- campfire_cli/app/skill/cli/skill_cli.py +44 -0
- campfire_cli/app/skill/repository/skill_repository.py +33 -0
- campfire_cli/app/skill/schema/skill_schema.py +18 -0
- campfire_cli/app/skill/service/skill_service.py +146 -0
- campfire_cli/app/workspace/SPEC.md +25 -0
- campfire_cli/app/workspace/__init__.py +1 -0
- campfire_cli/app/workspace/cli/__init__.py +1 -0
- campfire_cli/app/workspace/cli/adoption_cli.py +83 -0
- campfire_cli/app/workspace/cli/config_cli.py +30 -0
- campfire_cli/app/workspace/cli/domain_cli.py +101 -0
- campfire_cli/app/workspace/cli/project_cli.py +135 -0
- campfire_cli/app/workspace/cli/restructure_cli.py +133 -0
- campfire_cli/app/workspace/cli/space_cli.py +65 -0
- campfire_cli/app/workspace/cli/workspace_cli.py +145 -0
- campfire_cli/app/workspace/repository/__init__.py +1 -0
- campfire_cli/app/workspace/repository/adoption_repository.py +55 -0
- campfire_cli/app/workspace/repository/manifest_repository.py +38 -0
- campfire_cli/app/workspace/repository/restructure_repository.py +93 -0
- campfire_cli/app/workspace/repository/workspace_repository.py +125 -0
- campfire_cli/app/workspace/schema/__init__.py +1 -0
- campfire_cli/app/workspace/schema/adoption_schema.py +47 -0
- campfire_cli/app/workspace/schema/restructure_schema.py +64 -0
- campfire_cli/app/workspace/schema/workspace_schema.py +225 -0
- campfire_cli/app/workspace/service/__init__.py +1 -0
- campfire_cli/app/workspace/service/adoption_protocol.py +11 -0
- campfire_cli/app/workspace/service/adoption_service.py +364 -0
- campfire_cli/app/workspace/service/config_service.py +189 -0
- campfire_cli/app/workspace/service/domain_restructure_service.py +316 -0
- campfire_cli/app/workspace/service/project_service.py +389 -0
- campfire_cli/app/workspace/service/restructure_protocol.py +19 -0
- campfire_cli/app/workspace/service/restructure_service.py +392 -0
- campfire_cli/app/workspace/service/restructure_verifier.py +83 -0
- campfire_cli/app/workspace/service/structure_service.py +494 -0
- campfire_cli/app/workspace/service/workspace_protocol.py +24 -0
- campfire_cli/app/workspace/service/workspace_service.py +304 -0
- campfire_cli/common/SPEC.md +12 -0
- campfire_cli/common/__init__.py +1 -0
- campfire_cli/common/database/__init__.py +4 -0
- campfire_cli/common/database/migrations.py +18 -0
- campfire_cli/common/database/models.py +215 -0
- campfire_cli/common/database/session.py +30 -0
- campfire_cli/common/documents/__init__.py +1 -0
- campfire_cli/common/documents/document_types.py +119 -0
- campfire_cli/common/documents/frontmatter_schema.py +42 -0
- campfire_cli/common/documents/markdown.py +66 -0
- campfire_cli/common/exceptions/__init__.py +7 -0
- campfire_cli/common/exceptions/base.py +19 -0
- campfire_cli/common/filesystem/__init__.py +6 -0
- campfire_cli/common/filesystem/atomic.py +30 -0
- campfire_cli/common/filesystem/locking.py +55 -0
- campfire_cli/common/governance/__init__.py +13 -0
- campfire_cli/common/governance/issues.py +38 -0
- campfire_cli/common/governance/locking.py +31 -0
- campfire_cli/common/governance/snapshots.py +26 -0
- campfire_cli/common/hashing.py +10 -0
- campfire_cli/common/reports/__init__.py +1 -0
- campfire_cli/common/reports/json_report.py +8 -0
- campfire_cli/common/reports/markdown_report.py +29 -0
- campfire_cli/config/SPEC.md +5 -0
- campfire_cli/config/defaults.py +64 -0
- campfire_cli/config/settings.py +50 -0
- campfire_cli/container.py +130 -0
- campfire_cli/main.py +133 -0
- campfire_cli/resources/__init__.py +1 -0
- campfire_cli/resources/bases/Agent/346/211/247/350/241/214/345/267/245/344/275/234/345/217/260.base +35 -0
- campfire_cli/resources/bases/SPEC.md +3 -0
- campfire_cli/resources/bases//344/273/273/345/212/241/345/267/245/344/275/234/345/217/260.base +49 -0
- campfire_cli/resources/bases//345/206/263/347/255/226/345/267/245/344/275/234/345/217/260.base +40 -0
- campfire_cli/resources/bases//345/276/205/345/275/222/346/241/243/346/226/207/346/241/243.base +28 -0
- campfire_cli/resources/bases//351/241/271/347/233/256/346/226/207/346/241/243.base +35 -0
- campfire_cli/resources/defaults/__init__.py +1 -0
- campfire_cli/resources/defaults/config.yml +458 -0
- campfire_cli/resources/skills/SPEC.md +3 -0
- campfire_cli/resources/skills/campfire-context-bootstrap/SKILL.md +62 -0
- campfire_cli/resources/skills/campfire-context-bootstrap/agents/openai.yaml +3 -0
- campfire_cli/resources/skills/campfire-conversation-router/SKILL.md +53 -0
- campfire_cli/resources/skills/campfire-conversation-router/agents/openai.yaml +3 -0
- campfire_cli/resources/skills/campfire-conversation-router/references/inbox-handoff.md +19 -0
- campfire_cli/resources/skills/campfire-conversation-router/references/learning-intake.md +31 -0
- campfire_cli/resources/skills/campfire-conversation-router/references/task-intake.md +28 -0
- campfire_cli/resources/skills/campfire-document-capture/SKILL.md +109 -0
- campfire_cli/resources/skills/campfire-inbox-triage/SKILL.md +23 -0
- campfire_cli/resources/skills/campfire-weekly-report-writing/SKILL.md +21 -0
- campfire_cli/resources/skills/campfire-weekly-report-writing/agents/openai.yaml +3 -0
- campfire_cli/resources/skills/campfire-workspace-adoption/SKILL.md +42 -0
- campfire_cli/resources/skills/campfire-workspace-maintenance/SKILL.md +74 -0
- campfire_cli/resources/skills/campfire-workspace-maintenance/references//344/273/273/345/212/241/346/255/243/346/226/207/347/273/223/346/236/204.md +23 -0
- campfire_cli/resources/skills/campfire-workspace-restructure/SKILL.md +52 -0
- campfire_cli-0.1.0.dist-info/METADATA +141 -0
- campfire_cli-0.1.0.dist-info/RECORD +154 -0
- campfire_cli-0.1.0.dist-info/WHEEL +4 -0
- campfire_cli-0.1.0.dist-info/entry_points.txt +2 -0
- campfire_cli-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
workspace:
|
|
3
|
+
version: 1
|
|
4
|
+
system_directories:
|
|
5
|
+
- _收件箱/用户输入
|
|
6
|
+
- _收件箱/待接管
|
|
7
|
+
- _协作/decisions/pending
|
|
8
|
+
- _协作/decisions/answered
|
|
9
|
+
- _协作/decisions/closed
|
|
10
|
+
- _协作/decisions/cancelled
|
|
11
|
+
- 治理视图
|
|
12
|
+
spaces:
|
|
13
|
+
- id: knowledge
|
|
14
|
+
name: 知识
|
|
15
|
+
path: mynote
|
|
16
|
+
type: knowledge
|
|
17
|
+
- id: work
|
|
18
|
+
name: 工作
|
|
19
|
+
path: mywork
|
|
20
|
+
type: work
|
|
21
|
+
reserved_directories:
|
|
22
|
+
- _收件箱
|
|
23
|
+
- _协作
|
|
24
|
+
- 治理视图
|
|
25
|
+
- assets
|
|
26
|
+
- archive
|
|
27
|
+
- generated
|
|
28
|
+
- _总览
|
|
29
|
+
- 记录
|
|
30
|
+
- 任务
|
|
31
|
+
- a_skill
|
|
32
|
+
governance:
|
|
33
|
+
version: 1
|
|
34
|
+
inbox: _收件箱
|
|
35
|
+
collaboration_root: _协作
|
|
36
|
+
space_marker: _空间.md
|
|
37
|
+
domain_marker: _领域.md
|
|
38
|
+
related_limit: 3
|
|
39
|
+
related_min_score: 0.08
|
|
40
|
+
cross_domain_related_limit: 2
|
|
41
|
+
cross_domain_min_score: 0.06
|
|
42
|
+
ignored_directories:
|
|
43
|
+
- assets
|
|
44
|
+
- archive
|
|
45
|
+
- generated
|
|
46
|
+
project_reserved_directories:
|
|
47
|
+
- 任务
|
|
48
|
+
- 记录
|
|
49
|
+
- archive
|
|
50
|
+
- _总览
|
|
51
|
+
- a_skill
|
|
52
|
+
document_types:
|
|
53
|
+
version: 2
|
|
54
|
+
space_marker: _空间.md
|
|
55
|
+
scope_roots: []
|
|
56
|
+
ignored_directories:
|
|
57
|
+
- assets
|
|
58
|
+
- generated
|
|
59
|
+
- a_skill
|
|
60
|
+
exempt_basenames:
|
|
61
|
+
- _领域.md
|
|
62
|
+
- _空间.md
|
|
63
|
+
- README.md
|
|
64
|
+
- CLAUDE.md
|
|
65
|
+
- AGENTS.md
|
|
66
|
+
- COMMAND.md
|
|
67
|
+
profiles:
|
|
68
|
+
project-docs:
|
|
69
|
+
- moc
|
|
70
|
+
- product-spec
|
|
71
|
+
- tech-spec
|
|
72
|
+
- decision
|
|
73
|
+
- plan
|
|
74
|
+
- issue
|
|
75
|
+
- record
|
|
76
|
+
- board
|
|
77
|
+
types:
|
|
78
|
+
moc:
|
|
79
|
+
prefix: MOC-
|
|
80
|
+
label: 索引
|
|
81
|
+
product-spec:
|
|
82
|
+
prefix: 产品-
|
|
83
|
+
label: 产品
|
|
84
|
+
tech-spec:
|
|
85
|
+
prefix: 技术-
|
|
86
|
+
label: 技术
|
|
87
|
+
decision:
|
|
88
|
+
prefix: 决策-
|
|
89
|
+
label: 决策
|
|
90
|
+
plan:
|
|
91
|
+
prefix: 计划-
|
|
92
|
+
label: 计划
|
|
93
|
+
task:
|
|
94
|
+
prefix: 任务-
|
|
95
|
+
label: 任务
|
|
96
|
+
human-request:
|
|
97
|
+
prefix: 待确认-
|
|
98
|
+
label: 待用户确认
|
|
99
|
+
issue:
|
|
100
|
+
prefix: 问题-
|
|
101
|
+
label: 问题
|
|
102
|
+
record:
|
|
103
|
+
prefix: 记录-
|
|
104
|
+
label: 记录
|
|
105
|
+
board:
|
|
106
|
+
prefix: 看板-
|
|
107
|
+
label: 看板
|
|
108
|
+
requirement-doc:
|
|
109
|
+
prefix: 需求-
|
|
110
|
+
label: 需求
|
|
111
|
+
knowledge:
|
|
112
|
+
prefix: 知识-
|
|
113
|
+
label: 知识
|
|
114
|
+
prompt:
|
|
115
|
+
prefix: 提示词-
|
|
116
|
+
label: 提示词
|
|
117
|
+
meeting:
|
|
118
|
+
prefix: 会议-
|
|
119
|
+
label: 会议
|
|
120
|
+
command:
|
|
121
|
+
prefix: 命令-
|
|
122
|
+
label: 命令
|
|
123
|
+
weekly-report:
|
|
124
|
+
prefix: 周报-
|
|
125
|
+
label: 周报
|
|
126
|
+
work-log:
|
|
127
|
+
prefix: 日志-
|
|
128
|
+
label: 日志
|
|
129
|
+
frontmatter_schema:
|
|
130
|
+
version: 2
|
|
131
|
+
resolver:
|
|
132
|
+
fallback: base
|
|
133
|
+
profile_by_type:
|
|
134
|
+
knowledge: knowledge
|
|
135
|
+
task: task
|
|
136
|
+
profile_by_governance:
|
|
137
|
+
project-docs: project-doc
|
|
138
|
+
profiles:
|
|
139
|
+
base:
|
|
140
|
+
unknown_fields: preserve
|
|
141
|
+
field_order:
|
|
142
|
+
- name
|
|
143
|
+
- description
|
|
144
|
+
- type
|
|
145
|
+
- status
|
|
146
|
+
- created
|
|
147
|
+
- updated
|
|
148
|
+
- tags
|
|
149
|
+
required:
|
|
150
|
+
- name
|
|
151
|
+
- description
|
|
152
|
+
- type
|
|
153
|
+
- status
|
|
154
|
+
- created
|
|
155
|
+
- updated
|
|
156
|
+
- tags
|
|
157
|
+
optional: []
|
|
158
|
+
enums:
|
|
159
|
+
status:
|
|
160
|
+
- draft
|
|
161
|
+
- current
|
|
162
|
+
- archived
|
|
163
|
+
lists:
|
|
164
|
+
- tags
|
|
165
|
+
dates:
|
|
166
|
+
- created
|
|
167
|
+
- updated
|
|
168
|
+
knowledge:
|
|
169
|
+
extends: base
|
|
170
|
+
field_order:
|
|
171
|
+
- name
|
|
172
|
+
- description
|
|
173
|
+
- type
|
|
174
|
+
- status
|
|
175
|
+
- sources
|
|
176
|
+
- related
|
|
177
|
+
- created
|
|
178
|
+
- updated
|
|
179
|
+
- tags
|
|
180
|
+
required: []
|
|
181
|
+
optional:
|
|
182
|
+
- sources
|
|
183
|
+
- related
|
|
184
|
+
lists:
|
|
185
|
+
- sources
|
|
186
|
+
- related
|
|
187
|
+
project-doc:
|
|
188
|
+
extends: base
|
|
189
|
+
field_order:
|
|
190
|
+
- name
|
|
191
|
+
- description
|
|
192
|
+
- type
|
|
193
|
+
- project
|
|
194
|
+
- domain
|
|
195
|
+
- status
|
|
196
|
+
- lifecycle
|
|
197
|
+
- related
|
|
198
|
+
- superseded_by
|
|
199
|
+
- archive_requested
|
|
200
|
+
- archive_reason
|
|
201
|
+
- archived_at
|
|
202
|
+
- created
|
|
203
|
+
- updated
|
|
204
|
+
- tags
|
|
205
|
+
required:
|
|
206
|
+
- project
|
|
207
|
+
- domain
|
|
208
|
+
- lifecycle
|
|
209
|
+
optional:
|
|
210
|
+
- related
|
|
211
|
+
- superseded_by
|
|
212
|
+
- archive_requested
|
|
213
|
+
- archive_reason
|
|
214
|
+
- archived_at
|
|
215
|
+
enums:
|
|
216
|
+
lifecycle:
|
|
217
|
+
- maintained
|
|
218
|
+
- proposed
|
|
219
|
+
- completed
|
|
220
|
+
- archived
|
|
221
|
+
lists:
|
|
222
|
+
- related
|
|
223
|
+
- superseded_by
|
|
224
|
+
dates:
|
|
225
|
+
- archived_at
|
|
226
|
+
task:
|
|
227
|
+
extends: base
|
|
228
|
+
field_order:
|
|
229
|
+
- name
|
|
230
|
+
- description
|
|
231
|
+
- type
|
|
232
|
+
- task_id
|
|
233
|
+
- project
|
|
234
|
+
- status
|
|
235
|
+
- lifecycle
|
|
236
|
+
- priority
|
|
237
|
+
- assignee
|
|
238
|
+
- task_source
|
|
239
|
+
- requested_by
|
|
240
|
+
- requires_human
|
|
241
|
+
- due
|
|
242
|
+
- completed
|
|
243
|
+
- blocked_reason
|
|
244
|
+
- result_summary
|
|
245
|
+
- verification
|
|
246
|
+
- related
|
|
247
|
+
- created
|
|
248
|
+
- updated
|
|
249
|
+
- tags
|
|
250
|
+
required:
|
|
251
|
+
- task_id
|
|
252
|
+
- project
|
|
253
|
+
- lifecycle
|
|
254
|
+
- task_source
|
|
255
|
+
- assignee
|
|
256
|
+
- requires_human
|
|
257
|
+
optional:
|
|
258
|
+
- priority
|
|
259
|
+
- requested_by
|
|
260
|
+
- due
|
|
261
|
+
- completed
|
|
262
|
+
- blocked_reason
|
|
263
|
+
- result_summary
|
|
264
|
+
- verification
|
|
265
|
+
- related
|
|
266
|
+
enums:
|
|
267
|
+
lifecycle:
|
|
268
|
+
- todo
|
|
269
|
+
- in-progress
|
|
270
|
+
- blocked
|
|
271
|
+
- review
|
|
272
|
+
- completed
|
|
273
|
+
- cancelled
|
|
274
|
+
- archived
|
|
275
|
+
task_source:
|
|
276
|
+
- personal
|
|
277
|
+
- assigned
|
|
278
|
+
priority:
|
|
279
|
+
- urgent
|
|
280
|
+
- high
|
|
281
|
+
- medium
|
|
282
|
+
- low
|
|
283
|
+
lists:
|
|
284
|
+
- assignee
|
|
285
|
+
- verification
|
|
286
|
+
- related
|
|
287
|
+
dates:
|
|
288
|
+
- due
|
|
289
|
+
- completed
|
|
290
|
+
conditional_required:
|
|
291
|
+
- when:
|
|
292
|
+
lifecycle: blocked
|
|
293
|
+
require:
|
|
294
|
+
- blocked_reason
|
|
295
|
+
- when:
|
|
296
|
+
lifecycle: completed
|
|
297
|
+
require:
|
|
298
|
+
- completed
|
|
299
|
+
- result_summary
|
|
300
|
+
- verification
|
|
301
|
+
project:
|
|
302
|
+
version: 1
|
|
303
|
+
statuses:
|
|
304
|
+
- active
|
|
305
|
+
- paused
|
|
306
|
+
- archived
|
|
307
|
+
default_space_type: work
|
|
308
|
+
archive:
|
|
309
|
+
version: 1
|
|
310
|
+
reasons:
|
|
311
|
+
- superseded
|
|
312
|
+
- completed
|
|
313
|
+
- cancelled
|
|
314
|
+
- obsolete
|
|
315
|
+
- merged
|
|
316
|
+
- project-closed
|
|
317
|
+
reasons_requiring_successor:
|
|
318
|
+
- superseded
|
|
319
|
+
- merged
|
|
320
|
+
issues:
|
|
321
|
+
version: 1
|
|
322
|
+
default:
|
|
323
|
+
message: 发现治理规则问题。
|
|
324
|
+
suggestion: 根据 code、path 和 detail 审查后处理。
|
|
325
|
+
warning_codes:
|
|
326
|
+
- untitled-note
|
|
327
|
+
- undeclared-directory
|
|
328
|
+
catalog:
|
|
329
|
+
untitled-note:
|
|
330
|
+
- 文档仍使用临时名称。
|
|
331
|
+
- 理解正文后按文档类型改为有意义的名称;无法判断时保留并请求用户确认。
|
|
332
|
+
project-doc-frontmatter-missing:
|
|
333
|
+
- 项目文档缺少 Frontmatter。
|
|
334
|
+
- 根据正文确定类型和领域,再使用对应项目文档模板补齐元数据。
|
|
335
|
+
frontmatter-missing:
|
|
336
|
+
- 受管文档缺少 Frontmatter。
|
|
337
|
+
- 由 Agent 阅读正文后生成语义治理 Spec,再运行 campfire maintenance plan --id <id> --spec <file>。
|
|
338
|
+
frontmatter-field-order-invalid:
|
|
339
|
+
- Frontmatter 属性顺序不符合当前文档 Profile。
|
|
340
|
+
- 使用 document format,或通过 Maintenance Plan 审批后统一格式化。
|
|
341
|
+
frontmatter-field-missing:
|
|
342
|
+
- Frontmatter 缺少必填字段。
|
|
343
|
+
- 根据 detail 指定的字段补充真实值,不要编造业务信息。
|
|
344
|
+
frontmatter-field-empty:
|
|
345
|
+
- Frontmatter 必填字段存在但值为空。
|
|
346
|
+
- 根据 field 补充真实值;无法确认时保留问题并请求用户确认。
|
|
347
|
+
frontmatter-field-not-allowed:
|
|
348
|
+
- 字段不属于当前文档 Profile。
|
|
349
|
+
- 将叙述信息移入正文,或确认文档类型和领域归属是否正确。
|
|
350
|
+
frontmatter-enum-invalid:
|
|
351
|
+
- Frontmatter 使用了契约之外的枚举值。
|
|
352
|
+
- '使用 issue 的 allowed 值;任务完成语义应写入 lifecycle: completed。'
|
|
353
|
+
task-blocked-reason-missing:
|
|
354
|
+
- 阻塞任务缺少阻塞原因。
|
|
355
|
+
- 填写 blocked_reason,或将 lifecycle 修正为实际状态。
|
|
356
|
+
task-completion-evidence-missing:
|
|
357
|
+
- 完成任务缺少结果或验证证据。
|
|
358
|
+
- 补齐 completed、result_summary 和 verification 后再标记完成。
|
|
359
|
+
document-archive-state-mismatch:
|
|
360
|
+
- 文档状态、生命周期和 archive 路径不一致。
|
|
361
|
+
- 使用两阶段归档流程统一修复,不要只修改其中一个字段。
|
|
362
|
+
template-enum-invalid:
|
|
363
|
+
- Skill 模板中的枚举值与当前 Schema 不一致。
|
|
364
|
+
- 修改项目内 Skill SSOT 后运行 campfire skill sync。
|
|
365
|
+
concurrent-change:
|
|
366
|
+
- 计划生成后有文件被其他会话修改。
|
|
367
|
+
- 重新检查并生成计划;不要覆盖外部会话的最新内容。
|
|
368
|
+
maintenance-config-changed:
|
|
369
|
+
- 生成维护计划后治理配置发生变化。
|
|
370
|
+
- 使用当前 Profile 重新生成 Maintenance Plan。
|
|
371
|
+
maintenance-item-unapproved:
|
|
372
|
+
- 维护计划包含尚未审批的项目。
|
|
373
|
+
- '审查 path 和 detail 后在 Spec 中明确设置 approved: true,再重新生成计划。'
|
|
374
|
+
maintenance-path-outside-scope:
|
|
375
|
+
- 语义治理 Spec 引用了计划范围外的文档。
|
|
376
|
+
- 修正 --scope 或 Spec 中的 path 后重新生成计划。
|
|
377
|
+
maintenance-cross-domain-move:
|
|
378
|
+
- Maintenance Plan 试图跨目录移动文档。
|
|
379
|
+
- 跨 Domain 移动请使用 workspace restructure。
|
|
380
|
+
restructure-source-not-in-inventory:
|
|
381
|
+
- 重构来源不在冻结的批次清单中。
|
|
382
|
+
- 重新执行 inventory 正确范围,或修正计划规格中的 source。
|
|
383
|
+
restructure-config-changed:
|
|
384
|
+
- 生成计划后治理配置发生变化。
|
|
385
|
+
- 重新执行 inventory 和 plan,避免用旧规则执行重构。
|
|
386
|
+
source-hash-changed:
|
|
387
|
+
- 生成重构计划后源文档已被修改。
|
|
388
|
+
- 审查其他会话的变更后重新生成重构计划。
|
|
389
|
+
moc-missing:
|
|
390
|
+
- 领域声明引用的 MOC 文件不存在。
|
|
391
|
+
- 创建声明的 MOC 文件后重新运行 sync;不要让 sync 猜测文件名。
|
|
392
|
+
scope-missing:
|
|
393
|
+
- 指定范围内没有可同步的正式领域。
|
|
394
|
+
- 检查 --scope 路径和领域声明后重试。
|
|
395
|
+
scope-outside-workspace:
|
|
396
|
+
- 指定范围超出当前 Workspace。
|
|
397
|
+
- 使用当前 Workspace 内的相对路径。
|
|
398
|
+
project-doc-current-conflict:
|
|
399
|
+
- 同一物理领域存在多个当前唯一文档。
|
|
400
|
+
- 审查 actual 中的文档,只保留一份 current,或调整其领域和生命周期。
|
|
401
|
+
categories:
|
|
402
|
+
maintenance-:
|
|
403
|
+
- 维护计划不满足执行条件。
|
|
404
|
+
- 修正规格或重新生成 Maintenance Plan 后再执行。
|
|
405
|
+
restructure-:
|
|
406
|
+
- 重构计划不满足执行条件。
|
|
407
|
+
- 修正规格或重新生成重构批次后再执行。
|
|
408
|
+
source-:
|
|
409
|
+
- 重构源文件状态不符合计划。
|
|
410
|
+
- 重新执行 inventory 和 plan,避免覆盖新变化。
|
|
411
|
+
target-:
|
|
412
|
+
- 重构目标路径存在问题。
|
|
413
|
+
- 检查目标路径、重复项和已有文件。
|
|
414
|
+
frontmatter-:
|
|
415
|
+
- Frontmatter 不符合当前契约。
|
|
416
|
+
- 根据字段规则修正后重新检查。
|
|
417
|
+
document-:
|
|
418
|
+
- 文档类型、命名或状态不符合规则。
|
|
419
|
+
- 按文档类型契约修正并重新检查。
|
|
420
|
+
task-:
|
|
421
|
+
- 任务文档缺少必要状态或证据。
|
|
422
|
+
- 补充真实任务信息后重新检查。
|
|
423
|
+
domain-:
|
|
424
|
+
- 领域声明不完整或不一致。
|
|
425
|
+
- 检查 _领域.md 与目录结构。
|
|
426
|
+
archive-:
|
|
427
|
+
- 文档暂不满足归档条件。
|
|
428
|
+
- 补齐归档原因或后继关系后重试。
|
|
429
|
+
inbox-:
|
|
430
|
+
- 全局收件箱配置异常。
|
|
431
|
+
- 检查治理配置与 _收件箱 目录。
|
|
432
|
+
skills:
|
|
433
|
+
version: 1
|
|
434
|
+
targets:
|
|
435
|
+
- "~/.claude/skills"
|
|
436
|
+
- "~/.agents/skills"
|
|
437
|
+
managed_skills:
|
|
438
|
+
- campfire-workspace-adoption
|
|
439
|
+
- campfire-workspace-maintenance
|
|
440
|
+
- campfire-workspace-restructure
|
|
441
|
+
- campfire-context-bootstrap
|
|
442
|
+
- campfire-conversation-router
|
|
443
|
+
- campfire-document-capture
|
|
444
|
+
- campfire-inbox-triage
|
|
445
|
+
- campfire-weekly-report-writing
|
|
446
|
+
unknown_skill_policy: ignore
|
|
447
|
+
orphaned_skill_policy: report
|
|
448
|
+
bases:
|
|
449
|
+
version: 1
|
|
450
|
+
target: 治理视图
|
|
451
|
+
managed_bases:
|
|
452
|
+
- 项目文档.base
|
|
453
|
+
- 待归档文档.base
|
|
454
|
+
- 任务工作台.base
|
|
455
|
+
- Agent执行工作台.base
|
|
456
|
+
- 决策工作台.base
|
|
457
|
+
unknown_base_policy: ignore
|
|
458
|
+
orphaned_base_policy: report
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: campfire-context-bootstrap
|
|
3
|
+
description: "在 Agent 首次读写 Campfire 文档时解析 Workspace 和当前 Project,检查项目注册元信息及漂移;不负责写文档、执行任务或调度 Agent Session。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Campfire 上下文启动
|
|
7
|
+
|
|
8
|
+
仅在当前 Session 首次需要读取或沉淀 Campfire 文档时运行一次。目标是向后续文档 Skill 提供可靠的 Workspace、Project、源码路径和文档中心,不把运行态 Session 信息写进 Project 元数据。
|
|
9
|
+
|
|
10
|
+
## 状态机
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
首次需要 Campfire 文档能力
|
|
14
|
+
│
|
|
15
|
+
▼
|
|
16
|
+
campfire workspace resolve
|
|
17
|
+
│
|
|
18
|
+
▼
|
|
19
|
+
当前目录是否属于已注册 Project?
|
|
20
|
+
│
|
|
21
|
+
campfire workspace project resolve --path <cwd>
|
|
22
|
+
│ │
|
|
23
|
+
matched unmatched / ambiguous
|
|
24
|
+
│ │
|
|
25
|
+
▼ ▼
|
|
26
|
+
project check 自动读取 Git 与候选项目
|
|
27
|
+
│ │
|
|
28
|
+
┌───┴───┐ 能唯一确定?
|
|
29
|
+
│ │ │ │
|
|
30
|
+
ok needs-review 是 否
|
|
31
|
+
│ │ │ │
|
|
32
|
+
▼ ▼ ▼ ▼
|
|
33
|
+
完成上下文 提议修复 提议注册 询问用户
|
|
34
|
+
\ / │
|
|
35
|
+
用户确认 │
|
|
36
|
+
│ │
|
|
37
|
+
▼ ▼
|
|
38
|
+
project add/update 停止猜测
|
|
39
|
+
│
|
|
40
|
+
▼
|
|
41
|
+
重新 check
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 工作流
|
|
45
|
+
|
|
46
|
+
1. 运行 `campfire workspace resolve`,随后运行 `campfire workspace space list`。无法唯一解析 Workspace 时询问用户,不擅自使用无关默认值。
|
|
47
|
+
2. 在当前工作目录运行 `campfire workspace project resolve --path <cwd>`。`matched` 才表示唯一项目(依据是 local-path 匹配);`unmatched` 和 `ambiguous` 都不能猜测。`unmatched` 且带 `remote_matches` 时,表示该目录仅与这些项目共享 Git remote(monorepo 子目录或未绑定本机路径的项目),不能当作其中任何一个工作:同一项目换机未绑路径时提议 `project bind`,monorepo 子目录则提议注册新项目,提示见返回的 `hint`。
|
|
48
|
+
3. 唯一匹配后运行 `campfire workspace project check <id>`,把 Project 元信息和实际源码、Git、文档中心进行比较。
|
|
49
|
+
4. CLI 能读取的信息先自行读取:Git 根目录、origin remote、默认分支、注册项目列表和现有文档中心。只询问用户无法可靠推断的稳定身份与归属。
|
|
50
|
+
5. Project 未注册且文档中心不存在时,向用户展示建议的 `id`、`name`、Workspace、`document_domain`、`local_path`、remote、默认分支和依据。先运行不带 `--confirm` 的 `campfire workspace project create` 展示计划,用户确认后追加 `--confirm`;命令只初始化项目根领域和项目总览,不虚构业务子领域。已有文档中心使用 `project add` 接入。
|
|
51
|
+
6. Project 已注册但发生漂移时,区分定位信息与稳定身份。local path、同仓库 remote 或默认分支变化可以建议 `project update`;Project id、Workspace、文档中心、合并关系或归档状态必须明确确认。
|
|
52
|
+
7. 写入后重新运行 `project check`。只有结果为 `ok`,或已向用户明确说明不影响当前文档工作的剩余问题,才把上下文交给后续 Skill。
|
|
53
|
+
|
|
54
|
+
## 当前 Project 元信息
|
|
55
|
+
|
|
56
|
+
CLI 维护:稳定 `id`、`workspace_id`、显示 `name`、Vault 内 `document_domain`、`git_remote_url`、本机 `local_path`、`default_branch` 和 `status`。合法状态以 CLI 为准;本 Skill 不复制枚举。
|
|
57
|
+
|
|
58
|
+
## 输出
|
|
59
|
+
|
|
60
|
+
向后续流程提供一张紧凑上下文卡:Workspace id 与路径、Space、Project id 与名称、源码路径、项目根 Domain、匹配依据、检查状态和待用户确认项。未匹配到代码项目不阻止处理纯知识文档,但必须明确 Project 为空。
|
|
61
|
+
|
|
62
|
+
本 Skill 不创建知识、项目或任务文档,不执行代码任务,也不分派、恢复或跟踪 Agent Session。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: campfire-conversation-router
|
|
3
|
+
description: "路由用户在对话中表达的问答、任务、学习和文档沉淀意图;只决定是否进入 Campfire 文档协作流程,不负责写作、治理或 Agent Session 调度。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Campfire 对话路由
|
|
7
|
+
|
|
8
|
+
让用户直接说出需求,不要求用户先创建文件、选择类型或填写 Frontmatter。只判断当前表达是否需要形成或更新 Vault 文档,然后交给垂直 Skill;不负责 Agent Session 的分派、认领、恢复或通信。
|
|
9
|
+
|
|
10
|
+
## 路由
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
用户在对话中表达意图
|
|
14
|
+
│
|
|
15
|
+
▼
|
|
16
|
+
是否只需要当前回答? ──是──> 直接回答,不创建文档
|
|
17
|
+
│否
|
|
18
|
+
▼
|
|
19
|
+
是否要形成或更新文档? ──是──> campfire-document-capture
|
|
20
|
+
│ │
|
|
21
|
+
│ ├── 知识文档
|
|
22
|
+
│ ├── 项目文档
|
|
23
|
+
│ ├── 任务计划文档
|
|
24
|
+
│ └── Pending Decision
|
|
25
|
+
│
|
|
26
|
+
└── 无法判断 ──> 先问一个关键问题
|
|
27
|
+
│
|
|
28
|
+
无法及时确认
|
|
29
|
+
│
|
|
30
|
+
▼
|
|
31
|
+
decision create
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
1. 普通问答直接回答;用户没有要求跨对话保留时,不自动创建文档。
|
|
35
|
+
2. 用户说“沉淀一下”“记到项目里”“整理成文档”或要求创建、更新、总结文档时,加载 `campfire-document-capture`。
|
|
36
|
+
3. 领导交办、个人待办、实施计划或“帮我跟进”需要形成任务计划文档时,读取[任务文档接入](references/task-intake.md),再加载 `campfire-document-capture`。
|
|
37
|
+
4. “深入理解”“系统学习”“做实验并总结”等表达先读取[学习与知识文档接入](references/learning-intake.md);只有用户要持续保留成果时才加载 `campfire-document-capture`。
|
|
38
|
+
5. 已有文件位于 `_收件箱/` 时加载 `campfire-inbox-triage`;对话中无法及时解决的关键歧义读取[收件箱衔接规则](references/inbox-handoff.md),并创建 Pending Decision。
|
|
39
|
+
|
|
40
|
+
本 Skill 到路由完成即结束。授权、资源、源码现状和目标文档由 `campfire-document-capture` 检查;成品内容由知识、项目文档或任务 Skill 负责;格式、链接、MOC 和持续检查由 `campfire-workspace-maintenance` 负责。
|
|
41
|
+
|
|
42
|
+
## 交互原则
|
|
43
|
+
|
|
44
|
+
- 用户不需要理解 Campfire 目录、类型和字段;Agent 负责提出结构化草案。
|
|
45
|
+
- 能提供即时价值时先回答,不以“先建任务”为前置条件。
|
|
46
|
+
- 只询问会改变目标、范围、归属、验收或授权的关键问题,并给出推荐选项。
|
|
47
|
+
- 任务计划本身就是一种正式文档;确认创建后由 `campfire-workspace-maintenance` 处理,字段和生命周期读取 Document Profile。
|
|
48
|
+
- 沉淀的授权、资源与事实门禁完全由 `campfire-document-capture` 决定,本 Skill 不复制其规则。
|
|
49
|
+
- 不在本 Skill 中设计或执行 Agent Session 交接;创建任务文档不等于已把任务交给某个 Agent。
|
|
50
|
+
|
|
51
|
+
## 输出
|
|
52
|
+
|
|
53
|
+
对需要持续处理的意图,向用户返回一张简短确认卡:Agent 的理解、建议类型、目标项目或领域、关键问题和下一步。不要只在 Vault 中写文件而不在当前对话告知用户。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# 收件箱衔接规则
|
|
2
|
+
|
|
3
|
+
收件箱是后台缓冲区,不是要求用户操作的主要入口。
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
对话输入(主要) -> Agent 捕获和路由
|
|
7
|
+
文件投递(补充) -> _收件箱/用户输入/
|
|
8
|
+
关键歧义 -> Pending Decision -> 自动投影到 _协作/decisions/pending/
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
能够在当前对话中形成单一任务草案时,不额外创建原始收件箱文件;在任务的来源区保留必要原话即可。
|
|
12
|
+
|
|
13
|
+
以下情况进入 `_收件箱/用户输入/`:长篇原始材料、批量 IM 或会议内容、一次包含多个意图、不知道项目或类型、需要异步处理,或者必须完整保留来源。
|
|
14
|
+
|
|
15
|
+
以下情况调用 `campfire decision create`:项目或领域不明确、任务与知识难以区分、可能与已有内容冲突、合并或删除需要授权、目标范围或权威性无法判断。CLI 自动把 pending Decision 投影到 `_协作/decisions/pending/`;Agent 不手工创建或编辑投影。
|
|
16
|
+
|
|
17
|
+
Decision 必须关联原始输入,说明 Agent 的理解、推荐去向、候选选项和一个明确问题。当前对话可提问时同步向用户展示;获得答案后调用 `decision answer`,答案被原流程消费后调用 `decision close`。
|
|
18
|
+
|
|
19
|
+
收件箱不是永久存储。确认完成后转为正式任务、项目文档、知识或工作记录;原始材料的移动、合并或删除遵循 Workspace 治理审批规则。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 学习与知识文档接入
|
|
2
|
+
|
|
3
|
+
适用于“我想深入理解”“系统学习”“做实验掌握”以及希望把对话成果沉淀为长期知识的请求。
|
|
4
|
+
|
|
5
|
+
## 判断模式
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
一次问答 -> 直接回答,不默认落库
|
|
9
|
+
持续学习意图 -> 提议学习任务文档,用户确认后创建
|
|
10
|
+
明确沉淀请求 -> campfire-document-capture 检查后创建或更新知识文档
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
面对“我想深入理解 Go 的并发模型”这类表达,先给出有价值的学习地图或关键解释,再用一个问题确认用户是希望当前讲解,还是建立可跟踪的学习任务。不要要求用户先理解任务类型或目录。
|
|
14
|
+
|
|
15
|
+
## 学习任务
|
|
16
|
+
|
|
17
|
+
持续学习属于行动,任务进入 work 类型 Space;经过验证的成果才进入 knowledge 类型 Space。
|
|
18
|
+
|
|
19
|
+
学习任务应包含:学习目标、范围、实践或实验、可验证的掌握标准,以及预期知识产物。学习过程中可以产生问题、实验记录和候选总结,但 Agent 的一次回答不能直接当作正式知识。
|
|
20
|
+
|
|
21
|
+
## 知识文档
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
对话或学习过程发现
|
|
25
|
+
-> campfire-document-capture 检查授权、证据和归属
|
|
26
|
+
-> 正式知识 / 项目文档 / 任务文档 / Pending Decision / 不创建
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
用户已经授权且证据和归属明确时,可以直接创建或更新正式知识,不强制经过候选状态。未经授权的静默沉淀或存在关键歧义时,创建 Pending Decision;`human-request` Markdown 只由 CLI 投影。只有可复用、经过验证且不只是过程流水的内容才值得长期保存。
|
|
30
|
+
|
|
31
|
+
优先进入项目 SPEC 的内容:当前项目稳定架构、领域边界、长期接口与工程约束。优先进入 knowledge 类型 Space 的内容:跨项目方法、原理、可复用排障经验和个人已经理解验证的知识。
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 任务文档接入
|
|
2
|
+
|
|
3
|
+
适用于领导口头交代、IM 转述、个人待办、要求 Agent 跟进或尚不完整的执行意图。
|
|
4
|
+
|
|
5
|
+
任务计划本身是 Vault 中的 `task` 文档。本规则只把用户原话收敛为可创建的任务文档,不负责把任务交接给 Agent Session。
|
|
6
|
+
|
|
7
|
+
## 从原话到任务文档
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
用户原话
|
|
11
|
+
-> 识别来源、对象、期望结果和时间约束
|
|
12
|
+
-> 搜索相关项目、已有任务和稳定文档
|
|
13
|
+
-> 在当前对话形成任务建议
|
|
14
|
+
-> 仅确认关键歧义
|
|
15
|
+
-> 用户确认
|
|
16
|
+
-> campfire-document-capture 检查写入上下文
|
|
17
|
+
-> campfire-workspace-maintenance 创建正式任务文档
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
任务草案至少应让用户确认:目标、范围、非目标、验收标准、项目归属和是否允许实施。缺少普通实现细节不阻止确认;会扩大影响或改变业务方向的问题必须前置。
|
|
21
|
+
|
|
22
|
+
用户明确说“记一下”“帮我跟进”时,可以在当前对话展示任务文档建议;只有用户确认创建或跟踪后,才写正式任务文档。仅仅提到一件事情,不自动创建文档。
|
|
23
|
+
|
|
24
|
+
## 边界
|
|
25
|
+
|
|
26
|
+
任务文档记录目标、范围、验收、来源和状态,不承担 Agent Session 的分派、通信或恢复。未来即使增加 Session 协作领域,也只通过稳定标识关联任务文档,不把运行态字段塞进当前任务文档规范。
|
|
27
|
+
|
|
28
|
+
用户对创建任务文档的授权不自动包含实施、修改代码、发送消息、删除内容或扩大范围的授权。正式任务的生命周期和字段只读取 Campfire Document Profile,本规则不复述。
|