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.
Files changed (154) hide show
  1. campfire_cli/__init__.py +3 -0
  2. campfire_cli/alembic/__init__.py +1 -0
  3. campfire_cli/alembic/env.py +37 -0
  4. campfire_cli/alembic/script.py.mako +22 -0
  5. campfire_cli/alembic/versions/001_initial_schema.py +81 -0
  6. campfire_cli/alembic/versions/002_workspace_project_registry.py +47 -0
  7. campfire_cli/alembic/versions/003_unified_workspace_state.py +113 -0
  8. campfire_cli/alembic/versions/004_restructure_workspace_domain.py +23 -0
  9. campfire_cli/alembic/versions/005_decision_channel.py +71 -0
  10. campfire_cli/alembic/versions/006_workspace_topology_index.py +61 -0
  11. campfire_cli/alembic/versions/007_workspace_adoption.py +38 -0
  12. campfire_cli/alembic/versions/__init__.py +1 -0
  13. campfire_cli/app/SPEC.md +12 -0
  14. campfire_cli/app/__init__.py +1 -0
  15. campfire_cli/app/base/SPEC.md +3 -0
  16. campfire_cli/app/base/__init__.py +1 -0
  17. campfire_cli/app/base/cli/base_cli.py +37 -0
  18. campfire_cli/app/base/repository/base_repository.py +17 -0
  19. campfire_cli/app/base/schema/base_schema.py +18 -0
  20. campfire_cli/app/base/service/base_service.py +129 -0
  21. campfire_cli/app/decision/SPEC.md +16 -0
  22. campfire_cli/app/decision/__init__.py +1 -0
  23. campfire_cli/app/decision/cli/decision_cli.py +112 -0
  24. campfire_cli/app/decision/repository/decision_repository.py +199 -0
  25. campfire_cli/app/decision/schema/decision_schema.py +56 -0
  26. campfire_cli/app/decision/service/decision_projection_service.py +151 -0
  27. campfire_cli/app/decision/service/decision_service.py +124 -0
  28. campfire_cli/app/document/SPEC.md +51 -0
  29. campfire_cli/app/document/__init__.py +1 -0
  30. campfire_cli/app/document/cli/__init__.py +1 -0
  31. campfire_cli/app/document/cli/document_cli.py +63 -0
  32. campfire_cli/app/document/cli/profile_cli.py +65 -0
  33. campfire_cli/app/document/cli/type_cli.py +49 -0
  34. campfire_cli/app/document/repository/__init__.py +1 -0
  35. campfire_cli/app/document/repository/document_profile_repository.py +17 -0
  36. campfire_cli/app/document/repository/document_type_repository.py +17 -0
  37. campfire_cli/app/document/service/__init__.py +1 -0
  38. campfire_cli/app/document/service/document_profile_service.py +66 -0
  39. campfire_cli/app/document/service/document_rule_service.py +316 -0
  40. campfire_cli/app/document/service/document_scanner.py +38 -0
  41. campfire_cli/app/document/service/document_service.py +139 -0
  42. campfire_cli/app/document/service/document_type_service.py +28 -0
  43. campfire_cli/app/document/service/frontmatter_apply.py +98 -0
  44. campfire_cli/app/document/service/frontmatter_formatter.py +104 -0
  45. campfire_cli/app/document/service/frontmatter_plan.py +75 -0
  46. campfire_cli/app/document/service/profile_registry.py +166 -0
  47. campfire_cli/app/document/service/type_apply.py +185 -0
  48. campfire_cli/app/document/service/type_plan.py +80 -0
  49. campfire_cli/app/maintenance/SPEC.md +22 -0
  50. campfire_cli/app/maintenance/__init__.py +1 -0
  51. campfire_cli/app/maintenance/cli/maintenance_cli.py +103 -0
  52. campfire_cli/app/maintenance/repository/maintenance_repository.py +115 -0
  53. campfire_cli/app/maintenance/schema/maintenance_schema.py +109 -0
  54. campfire_cli/app/maintenance/service/archive_service.py +255 -0
  55. campfire_cli/app/maintenance/service/link_service.py +91 -0
  56. campfire_cli/app/maintenance/service/maintenance_protocol.py +25 -0
  57. campfire_cli/app/maintenance/service/maintenance_service.py +461 -0
  58. campfire_cli/app/maintenance/service/moc_service.py +310 -0
  59. campfire_cli/app/maintenance/service/plan_service.py +411 -0
  60. campfire_cli/app/skill/SPEC.md +3 -0
  61. campfire_cli/app/skill/__init__.py +1 -0
  62. campfire_cli/app/skill/cli/skill_cli.py +44 -0
  63. campfire_cli/app/skill/repository/skill_repository.py +33 -0
  64. campfire_cli/app/skill/schema/skill_schema.py +18 -0
  65. campfire_cli/app/skill/service/skill_service.py +146 -0
  66. campfire_cli/app/workspace/SPEC.md +25 -0
  67. campfire_cli/app/workspace/__init__.py +1 -0
  68. campfire_cli/app/workspace/cli/__init__.py +1 -0
  69. campfire_cli/app/workspace/cli/adoption_cli.py +83 -0
  70. campfire_cli/app/workspace/cli/config_cli.py +30 -0
  71. campfire_cli/app/workspace/cli/domain_cli.py +101 -0
  72. campfire_cli/app/workspace/cli/project_cli.py +135 -0
  73. campfire_cli/app/workspace/cli/restructure_cli.py +133 -0
  74. campfire_cli/app/workspace/cli/space_cli.py +65 -0
  75. campfire_cli/app/workspace/cli/workspace_cli.py +145 -0
  76. campfire_cli/app/workspace/repository/__init__.py +1 -0
  77. campfire_cli/app/workspace/repository/adoption_repository.py +55 -0
  78. campfire_cli/app/workspace/repository/manifest_repository.py +38 -0
  79. campfire_cli/app/workspace/repository/restructure_repository.py +93 -0
  80. campfire_cli/app/workspace/repository/workspace_repository.py +125 -0
  81. campfire_cli/app/workspace/schema/__init__.py +1 -0
  82. campfire_cli/app/workspace/schema/adoption_schema.py +47 -0
  83. campfire_cli/app/workspace/schema/restructure_schema.py +64 -0
  84. campfire_cli/app/workspace/schema/workspace_schema.py +225 -0
  85. campfire_cli/app/workspace/service/__init__.py +1 -0
  86. campfire_cli/app/workspace/service/adoption_protocol.py +11 -0
  87. campfire_cli/app/workspace/service/adoption_service.py +364 -0
  88. campfire_cli/app/workspace/service/config_service.py +189 -0
  89. campfire_cli/app/workspace/service/domain_restructure_service.py +316 -0
  90. campfire_cli/app/workspace/service/project_service.py +389 -0
  91. campfire_cli/app/workspace/service/restructure_protocol.py +19 -0
  92. campfire_cli/app/workspace/service/restructure_service.py +392 -0
  93. campfire_cli/app/workspace/service/restructure_verifier.py +83 -0
  94. campfire_cli/app/workspace/service/structure_service.py +494 -0
  95. campfire_cli/app/workspace/service/workspace_protocol.py +24 -0
  96. campfire_cli/app/workspace/service/workspace_service.py +304 -0
  97. campfire_cli/common/SPEC.md +12 -0
  98. campfire_cli/common/__init__.py +1 -0
  99. campfire_cli/common/database/__init__.py +4 -0
  100. campfire_cli/common/database/migrations.py +18 -0
  101. campfire_cli/common/database/models.py +215 -0
  102. campfire_cli/common/database/session.py +30 -0
  103. campfire_cli/common/documents/__init__.py +1 -0
  104. campfire_cli/common/documents/document_types.py +119 -0
  105. campfire_cli/common/documents/frontmatter_schema.py +42 -0
  106. campfire_cli/common/documents/markdown.py +66 -0
  107. campfire_cli/common/exceptions/__init__.py +7 -0
  108. campfire_cli/common/exceptions/base.py +19 -0
  109. campfire_cli/common/filesystem/__init__.py +6 -0
  110. campfire_cli/common/filesystem/atomic.py +30 -0
  111. campfire_cli/common/filesystem/locking.py +55 -0
  112. campfire_cli/common/governance/__init__.py +13 -0
  113. campfire_cli/common/governance/issues.py +38 -0
  114. campfire_cli/common/governance/locking.py +31 -0
  115. campfire_cli/common/governance/snapshots.py +26 -0
  116. campfire_cli/common/hashing.py +10 -0
  117. campfire_cli/common/reports/__init__.py +1 -0
  118. campfire_cli/common/reports/json_report.py +8 -0
  119. campfire_cli/common/reports/markdown_report.py +29 -0
  120. campfire_cli/config/SPEC.md +5 -0
  121. campfire_cli/config/defaults.py +64 -0
  122. campfire_cli/config/settings.py +50 -0
  123. campfire_cli/container.py +130 -0
  124. campfire_cli/main.py +133 -0
  125. campfire_cli/resources/__init__.py +1 -0
  126. campfire_cli/resources/bases/Agent/346/211/247/350/241/214/345/267/245/344/275/234/345/217/260.base +35 -0
  127. campfire_cli/resources/bases/SPEC.md +3 -0
  128. campfire_cli/resources/bases//344/273/273/345/212/241/345/267/245/344/275/234/345/217/260.base +49 -0
  129. campfire_cli/resources/bases//345/206/263/347/255/226/345/267/245/344/275/234/345/217/260.base +40 -0
  130. campfire_cli/resources/bases//345/276/205/345/275/222/346/241/243/346/226/207/346/241/243.base +28 -0
  131. campfire_cli/resources/bases//351/241/271/347/233/256/346/226/207/346/241/243.base +35 -0
  132. campfire_cli/resources/defaults/__init__.py +1 -0
  133. campfire_cli/resources/defaults/config.yml +458 -0
  134. campfire_cli/resources/skills/SPEC.md +3 -0
  135. campfire_cli/resources/skills/campfire-context-bootstrap/SKILL.md +62 -0
  136. campfire_cli/resources/skills/campfire-context-bootstrap/agents/openai.yaml +3 -0
  137. campfire_cli/resources/skills/campfire-conversation-router/SKILL.md +53 -0
  138. campfire_cli/resources/skills/campfire-conversation-router/agents/openai.yaml +3 -0
  139. campfire_cli/resources/skills/campfire-conversation-router/references/inbox-handoff.md +19 -0
  140. campfire_cli/resources/skills/campfire-conversation-router/references/learning-intake.md +31 -0
  141. campfire_cli/resources/skills/campfire-conversation-router/references/task-intake.md +28 -0
  142. campfire_cli/resources/skills/campfire-document-capture/SKILL.md +109 -0
  143. campfire_cli/resources/skills/campfire-inbox-triage/SKILL.md +23 -0
  144. campfire_cli/resources/skills/campfire-weekly-report-writing/SKILL.md +21 -0
  145. campfire_cli/resources/skills/campfire-weekly-report-writing/agents/openai.yaml +3 -0
  146. campfire_cli/resources/skills/campfire-workspace-adoption/SKILL.md +42 -0
  147. campfire_cli/resources/skills/campfire-workspace-maintenance/SKILL.md +74 -0
  148. 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
  149. campfire_cli/resources/skills/campfire-workspace-restructure/SKILL.md +52 -0
  150. campfire_cli-0.1.0.dist-info/METADATA +141 -0
  151. campfire_cli-0.1.0.dist-info/RECORD +154 -0
  152. campfire_cli-0.1.0.dist-info/WHEEL +4 -0
  153. campfire_cli-0.1.0.dist-info/entry_points.txt +2 -0
  154. 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,3 @@
1
+ # Skill Resources SPEC
2
+
3
+ 本目录是 Campfire 托管 Skill 的唯一事实来源。全局 Agent Skill 目录是由 `campfire skill sync` 生成的运行副本,不在副本中直接维护托管 Skill。
@@ -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,3 @@
1
+ interface:
2
+ display_name: "Campfire 上下文启动"
3
+ short_description: "解析 Workspace、Project、源码和文档中心"
@@ -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,3 @@
1
+ interface:
2
+ display_name: "Campfire 对话路由"
3
+ short_description: "把自然语言意图路由到正确的文档协作流程"
@@ -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,本规则不复述。