@thinkingai/ae-cli 6.0.55 → 6.0.57
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 +35 -6
- package/README.zh.md +35 -6
- package/bin/ae-cli.js +5 -0
- package/bin/runtime-capabilities.json +5 -0
- package/cli-installation-guide.md +24 -3
- package/dist/{auth-RQBO6MTY.js → auth-YEIJLBFY.js} +61 -19
- package/dist/{automation-VAAQBM7Y.js → automation-NAR5DDGL.js} +94 -38
- package/dist/{capability-JRIFC4AJ.js → capability-P7DD4Q73.js} +50 -21
- package/dist/{chunk-5XJYLEVC.js → chunk-72NJKS7O.js} +4 -4
- package/dist/chunk-752BSLZC.js +222 -0
- package/dist/{chunk-RGYPSEYD.js → chunk-7ABK2PEJ.js} +3 -3
- package/dist/{chunk-Q5US7JC5.js → chunk-7JAVT5TK.js} +3 -3
- package/dist/{chunk-GHXZK54S.js → chunk-H3K5UGYC.js} +41 -13
- package/dist/{chunk-OP44TT4H.js → chunk-IN7KKL6K.js} +4 -2
- package/dist/{chunk-VZZNLV3I.js → chunk-JCWM2TYP.js} +61 -15
- package/dist/{chunk-S6M42KND.js → chunk-JEUXDY3B.js} +1 -1
- package/dist/{chunk-ZL7SGNIA.js → chunk-JNVVJ273.js} +58 -46
- package/dist/chunk-N6XBLRB7.js +105 -0
- package/dist/{chunk-AP7YP2NX.js → chunk-OAWPT7VP.js} +2 -2
- package/dist/{chunk-7KU2WNQE.js → chunk-QEMQKVHW.js} +37 -15
- package/dist/{chunk-CT7QDJS6.js → chunk-QVRIDN42.js} +2 -2
- package/dist/{chunk-RPBOAQQQ.js → chunk-QZUVLFNR.js} +1 -1
- package/dist/{chunk-3YVEAZUN.js → chunk-RJHGDWSC.js} +32 -21
- package/dist/{chunk-374V5R6N.js → chunk-TKVVACEJ.js} +6 -4
- package/dist/chunk-TULINOLS.js +2283 -0
- package/dist/chunk-YVG6QD3V.js +233 -0
- package/dist/{chunk-WNGFSIOB.js → chunk-Z3Q2AEIN.js} +237 -86
- package/dist/chunk-ZGIYG473.js +132 -0
- package/dist/{community-report-client-PEERQCX2.js → community-report-client-TJVCLZ3K.js} +1 -1
- package/dist/compat-check-PMEGUPZU.js +32 -0
- package/dist/{config-SICKWZ2A.js → config-VWVPR4WW.js} +43 -10
- package/dist/{context-NGVFPCBK.js → context-F6FCGTF3.js} +4 -4
- package/dist/{data-integration-BCLQFTGU.js → data-integration-6UAZO4GG.js} +207 -24
- package/dist/evaluation-4LO2O4AF.js +3714 -0
- package/dist/index.js +343 -79
- package/dist/{local-data-upload-client-TWMHFLUA.js → local-data-upload-client-KCMG6J62.js} +1 -1
- package/dist/{memory-CQKH2JAV.js → memory-HHPX3NF2.js} +6 -6
- package/dist/{metadata-EMFGUI2W.js → metadata-HEQQEEG3.js} +17 -9
- package/dist/{model-VX5M2CJ6.js → model-7UHGWYVR.js} +4 -4
- package/dist/{personal-semantic-preference-SLWVVYZ4.js → personal-semantic-preference-V4L6ZWR2.js} +7 -6
- package/dist/{project-semantic-DPSZBKQD.js → project-semantic-NKHKJX6M.js} +7 -6
- package/dist/{sync-RZIAV37C.js → sync-ZJMXCRIN.js} +8 -7
- package/dist/{te-agent-AORRE2FM.js → te-agent-WBKIFEQD.js} +757 -94
- package/dist/{te-analysis-ISXKJKRT.js → te-analysis-ADX7RKO4.js} +578 -94
- package/dist/{te-community-42M7ICDO.js → te-community-PREDRXG3.js} +722 -228
- package/dist/{te-dataops-BNKNZ4F2.js → te-dataops-ITWJHO2U.js} +9 -6
- package/dist/{te-engage-BZE3MBKT.js → te-engage-VE2NUH5V.js} +7 -6
- package/dist/{te-kb-ULATOTQ3.js → te-kb-WSMOW7WS.js} +407 -83
- package/dist/{te-system-UGHVKBVV.js → te-system-YM657FKO.js} +6 -6
- package/dist/{te-team-YA6SNOJ3.js → te-team-T2WRLOOD.js} +64 -41
- package/dist/{things-DTCOQIQB.js → things-6QOMFXOG.js} +7 -7
- package/dist/{update-ESNYKUVR.js → update-I4MOUYOX.js} +11 -7
- package/dist/{workspace-JEOHKFPX.js → workspace-LYDAP647.js} +6 -6
- package/package.json +25 -11
- package/skills/ae-agent/SKILL.md +20 -3
- package/skills/ae-agent/references/command_index.md +8 -0
- package/skills/ae-agent/references/resource-package.md +57 -0
- package/skills/ae-analysis/SKILL.md +23 -10
- package/skills/ae-analysis/references/adhoc_export.md +1 -1
- package/skills/ae-analysis/references/agent_review_preflight.md +55 -10
- package/skills/ae-analysis/references/agent_review_priorities_comparisons.md +5 -3
- package/skills/ae-analysis/references/agent_review_submit_to_page.md +60 -24
- package/skills/ae-analysis/references/ai_models/event.md +58 -2
- package/skills/ae-analysis/references/ai_models/rank_list.md +1 -0
- package/skills/ae-analysis/references/ai_models/retention.md +2 -0
- package/skills/ae-analysis/references/ai_models/revenue.md +2 -0
- package/skills/ae-analysis/references/analysis_data_export.md +11 -1
- package/skills/ae-analysis/references/asset_batch_info_export.md +2 -2
- package/skills/ae-analysis/references/asset_batch_sql_export.md +2 -2
- package/skills/ae-analysis/references/asset_export.md +1 -1
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
- package/skills/ae-analysis/references/check_export.md +1 -1
- package/skills/ae-analysis/references/command_index.md +39 -26
- package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_get.md +6 -2
- package/skills/ae-analysis/references/dashboard_report_update.md +24 -5
- package/skills/ae-analysis/references/feedback_submit.md +1 -1
- package/skills/ae-analysis/references/governance_recommendation_export.md +40 -18
- package/skills/ae-analysis/references/governance_recommendation_run_update.md +13 -0
- package/skills/ae-analysis/references/live_data_export.md +1 -1
- package/skills/ae-analysis/references/metric_create.md +29 -0
- package/skills/ae-analysis/references/metric_get.md +2 -0
- package/skills/ae-analysis/references/metric_update.md +2 -0
- package/skills/ae-analysis/references/operation_record_export.md +1 -1
- package/skills/ae-analysis/references/plan_change_log_export.md +1 -1
- package/skills/ae-analysis/references/plan_export.md +1 -1
- package/skills/ae-analysis/references/project_info_get.md +4 -0
- package/skills/ae-analysis/references/project_member_group_add_members.md +35 -0
- package/skills/ae-analysis/references/project_member_group_create.md +25 -0
- package/skills/ae-analysis/references/project_member_group_delete.md +34 -0
- package/skills/ae-analysis/references/project_member_group_list.md +29 -0
- package/skills/ae-analysis/references/project_member_group_members.md +28 -0
- package/skills/ae-analysis/references/project_member_group_remove_members.md +35 -0
- package/skills/ae-analysis/references/project_member_group_rename.md +26 -0
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +9 -1
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +6 -1
- package/skills/ae-analysis/references/report_data_export.md +1 -1
- package/skills/ae-analysis/references/scenario_append.md +31 -0
- package/skills/ae-analysis/references/scenario_begin.md +11 -0
- package/skills/ae-analysis/references/scenario_collect.md +43 -0
- package/skills/ae-analysis/references/scenario_evaluation.md +18 -0
- package/skills/ae-analysis/references/scenario_get.md +15 -0
- package/skills/ae-analysis/references/scenario_list.md +64 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +73 -4
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +14 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-schema.md +5 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/execution-contract.mjs +173 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +109 -64
- package/skills/ae-automation/SKILL.md +2 -2
- package/skills/ae-automation/references/cli.md +18 -1
- package/skills/ae-capability/SKILL.md +7 -3
- package/skills/ae-community/SKILL.md +77 -27
- package/skills/ae-community/references/community-analyzing-theme-comment.md +10 -8
- package/skills/ae-community/references/community-data-quality.md +68 -0
- package/skills/ae-community/references/community-query-evidence.md +85 -0
- package/skills/ae-community/references/community-scenario-capabilities.md +137 -0
- package/skills/ae-community/references/community-weekly-report.md +6 -3
- package/skills/ae-community/references/get_channel_info.md +7 -4
- package/skills/ae-community/references/get_comment_tag_analysis.md +3 -3
- package/skills/ae-community/references/get_comments_summary.md +4 -4
- package/skills/ae-community/references/get_corpus_tags.md +3 -3
- package/skills/ae-community/references/get_daily_summary.md +3 -3
- package/skills/ae-community/references/get_hot_topics.md +3 -3
- package/skills/ae-community/references/get_livestream_analysis.md +3 -3
- package/skills/ae-community/references/get_livestream_detail.md +4 -4
- package/skills/ae-community/references/get_livestream_list.md +3 -3
- package/skills/ae-community/references/get_livestream_overview.md +3 -3
- package/skills/ae-community/references/get_livestream_room_metrics.md +3 -3
- package/skills/ae-community/references/get_livestream_rooms.md +3 -3
- package/skills/ae-community/references/get_overview_metrics.md +3 -3
- package/skills/ae-community/references/get_post_detail.md +4 -4
- package/skills/ae-community/references/get_risk_content.md +5 -5
- package/skills/ae-community/references/get_sentiment_overview.md +4 -4
- package/skills/ae-community/references/get_tag_trends.md +3 -3
- package/skills/ae-community/references/get_topic_detail.md +3 -3
- package/skills/ae-community/references/list_sources.md +28 -0
- package/skills/ae-community/references/list_spaces.md +39 -0
- package/skills/ae-community/references/search_posts.md +21 -7
- package/skills/ae-data-integration/SKILL.md +6 -4
- package/skills/ae-data-integration/references/error-handling.md +1 -0
- package/skills/ae-data-integration/references/handoff.md +1 -1
- package/skills/ae-data-integration/references/sink-upload.md +11 -0
- package/skills/ae-data-integration/references/source-inspect.md +2 -1
- package/skills/ae-data-integration/references/transform.md +1 -1
- package/skills/ae-data-integration/references/ue-mapping.md +1 -1
- package/skills/ae-evaluation/SKILL.md +83 -0
- package/skills/ae-evaluation/references/access-and-members.md +55 -0
- package/skills/ae-evaluation/references/connections.md +78 -0
- package/skills/ae-evaluation/references/datasets.md +57 -0
- package/skills/ae-evaluation/references/evaluators.md +81 -0
- package/skills/ae-evaluation/references/files.md +33 -0
- package/skills/ae-evaluation/references/integrations.md +39 -0
- package/skills/ae-evaluation/references/runs.md +160 -0
- package/skills/ae-evaluation/references/schedules.md +31 -0
- package/skills/ae-kb/SKILL.md +33 -6
- package/skills/ae-kb/references/publication.md +81 -0
- package/skills/ae-kb/references/query-workflow.md +14 -1
- package/skills/ae-metadata/SKILL.md +3 -2
- package/skills/ae-metadata/references/metadata_data_table_download.md +7 -1
- package/skills/ae-metadata/references/metadata_data_table_get.md +37 -0
- package/skills/ae-team/SKILL.md +2 -2
- package/skills/ae-team/references/run-start.md +1 -0
- package/skills/ae-team/references/run-watch.md +7 -5
- package/skills/ae-things/SKILL.md +53 -51
- package/skills/ae-things/references/cli.md +56 -54
- package/skills/ae-things-progress/SKILL.md +20 -20
- package/skills/ae-things-review/SKILL.md +19 -19
- package/dist/chunk-6VNIR4AP.js +0 -1422
- package/dist/chunk-CI24BDR2.js +0 -43
|
@@ -1,85 +1,87 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-things
|
|
3
|
-
description: "
|
|
3
|
+
description: "Workspace Things: use ae-cli things to create, query, update and advance Things in an explicitly identified AgentSpace. Use proactively when the conversation includes assignments (who owns what), deliverables, a delivery cadence, to-dos, next steps, milestones or phased plans; an explicit request to create a Thing is not required."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Workspace Things
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Use `ae-cli things` to manage Things in the explicitly identified current TE space. Read the [CLI reference](references/cli.md) first. Never guess IDs or automatically select another space. Use the user's language for replies and user-facing Thing content; keep commands, flags and field identifiers unchanged.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
<a id="何时创建事项"></a>
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## When to create Things
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Decide proactively whether to create Things; do not wait for an explicit request such as "create a Thing for me".** Apply the same rules to personal and shared spaces.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- 出现要交付的产出加上推进意图,例如「输出一份最终方案」「按这个节奏推进」「安排一下」。
|
|
18
|
-
- 出现承诺、待办、下一步、里程碑或多阶段计划。
|
|
19
|
-
- 用户在复述已经定下来的事,并指向后续执行。
|
|
16
|
+
Create Things directly, without asking first, when any of these signals appears:
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
- An assignment identifies who does what, such as "Have A investigate X and B investigate Y."
|
|
19
|
+
- A deliverable is paired with intent to proceed, such as "produce a final proposal", "follow this cadence" or "schedule the work".
|
|
20
|
+
- The conversation contains commitments, to-dos, next steps, milestones or phased plans.
|
|
21
|
+
- The user restates an agreed decision and points toward execution.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
- 还在比较方案、假设性推演,或用户明确说「先不定」。
|
|
25
|
-
- 查重命中已有同义事项——指出已存在,不重复建。
|
|
26
|
-
- 用户说过不要建。
|
|
23
|
+
Do not create Things in these cases:
|
|
27
24
|
|
|
28
|
-
|
|
25
|
+
- Informational questions, conceptual explanations or casual conversation.
|
|
26
|
+
- Options are still being compared, the discussion is hypothetical, or the user explicitly says not to decide yet.
|
|
27
|
+
- Deduplication finds an existing equivalent Thing: point it out instead of creating a duplicate.
|
|
28
|
+
- The user has said not to create Things.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
**When uncertain, present the proposed Things (titles, assignees and description outlines) in the reply and ask for confirmation once. Merely formatting assignments into a list without taking action is not sufficient.**
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
2. `members` 取成员列表,把对话里提到的人名映射到成员 ID。唯一命中就直接作为 `--assignee-id`;命中 0 个或多个时该事项负责人留空(服务端默认当前用户),并在回复里点名待确认。
|
|
34
|
-
3. `list --query` 或 `options --query` 查重。
|
|
35
|
-
4. 逐个 `create`:标题写可交付物而不是原话复述,描述写清目标与验收要点,带 `--command-id` 保证重试幂等。
|
|
36
|
-
5. 需要时用 `conversation bind` 绑定主事项,或 `link-conversation` 建普通引用。
|
|
37
|
-
6. 在回复里报告已创建的事项编号、标题、负责人,以及哪些负责人待确认。
|
|
32
|
+
### Creation sequence
|
|
38
33
|
|
|
39
|
-
|
|
34
|
+
1. Confirm that an explicit AgentSpace is bound. Without one, do not create Things.
|
|
35
|
+
2. Use `members` to map names mentioned in the conversation to member IDs. Use a unique match as `--assignee-id`. With zero or multiple matches, omit the assignee (the server defaults to the current user) and identify the unresolved assignment in the reply.
|
|
36
|
+
3. Deduplicate with `list --query` or `options --query`.
|
|
37
|
+
4. Run `create` for each Thing: name the deliverable rather than repeating the user's words, describe the goal and acceptance criteria, and include `--command-id` for idempotent retries.
|
|
38
|
+
5. When needed, use `conversation bind` to bind the primary Thing or `link-conversation` to add an ordinary reference.
|
|
39
|
+
6. Report the created Thing numbers, titles and assignees, including assignments still awaiting confirmation.
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
**Granularity:** create one Thing per independently deliverable unit with its own owner. Things have no sub-Things or groups; do not build a hierarchy. For example, "A, B and C each investigate one area, then combine the results into a final proposal" maps to four Things, not one and not one per sentence.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
### Authorization boundaries
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Act autonomously to create new Things and add the first entry to a Thing you just created.
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
For Things the user has authorized you to advance or complete, append or update the relevant progress directly and automatically attach the deliverable files involved in this work. Complete publication and readback as described below. The same rule applies to personal and shared spaces; publication still requires `--confirm-share`. Authorization to deliver work for a Thing includes sharing those deliverable files with that Thing's space.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Other changes to existing Things, reassignment, archiving/restoring, unbinding and permanent deletion still require explicit authorization. A historical binding alone does not grant authorization. Do not automatically send messages or create scheduled tasks.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
### Deliverable attachment workflow
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
2. 尚未进入空间的新文件用 `asset publish`:本轮未登记产物使用 `--conversation-id --run-id --source-path`;已有产物使用 `--artifact-id` 或 `--file-token`。每个文件保存独立 commandId,重试原样复用。
|
|
55
|
-
3. `linked:false` 表示已发布未关联,只用返回 assetId 补 `asset link`,不重复复制。只发布本次交付文件,不发布临时文件或整个会话目录。
|
|
56
|
-
4. `asset list --id` 回读,核实每个附件存在且 availability=available,再回读进展记录。只有两者均成功才报告“进展和附件已更新”;失败明确区分已发布、已关联、待恢复。
|
|
53
|
+
When appending or updating progress, check each file actually delivered in this work:
|
|
57
54
|
|
|
58
|
-
|
|
55
|
+
1. Use `asset available` to inspect space files and follow all pages. Link registered files by assetId and unregistered files by the returned relative path.
|
|
56
|
+
2. Use `asset publish` for new files not yet in the space: use `--conversation-id --run-id --source-path` for unregistered outputs from this run, or `--artifact-id` / `--file-token` for existing artifacts. Keep a separate commandId for each file and reuse it unchanged on retries.
|
|
57
|
+
3. `linked:false` means the file was published but not linked. Use the returned assetId with `asset link` to complete the link without copying again. Publish only the deliverable files from this work, not temporary files or the entire conversation directory.
|
|
58
|
+
4. Read back with `asset list --id`, verify that every attachment exists with availability=available, then read back the progress entry. Report "progress and attachments updated" only after both checks succeed. On failure, distinguish published files, linked files and work awaiting recovery.
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
Use these file-linking APIs for attachments. A text link to a local path does not replace an attachment, and copying a file alone does not complete delivery. See the CLI reference for full parameters.
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
## Current conversation binding and execution snapshots
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
Use the binding declaration frozen for this run to determine its default Thing. Before executing, reviewing, summarizing or updating that Thing, use the declaration's `readCommand` to read the execution snapshot; ordinary chat does not require this read. Switching or unbinding during a run changes the conversation's association immediately, but the current run (including waits, resumes and retries) keeps its original snapshot. If the run originally had no Thing, it still has no default Thing. Only a new Run uses the latest binding. If the user explicitly names another Thing, read and operate on it subject to permissions; do not confuse the conversation's latest association with this run's snapshot.
|
|
65
65
|
|
|
66
|
-
`context
|
|
66
|
+
When the user explicitly asks to bind the current conversation to a Thing, uniquely identify the target, run `conversation bind`, then verify with `conversation primary`. Ask the user when a name does not uniquely identify a Thing. On success, explain that the binding is saved and the Thing context takes effect from the next run. Verify unbinding by readback as well. An ordinary `link-conversation` reference does not substitute for a primary-Thing binding. Report API failures accurately without bypassing permissions.
|
|
67
67
|
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
68
|
+
`context --id <thing-id> --run-id <run-id>` returns the business text and version captured when execution was accepted. When current facts or a version for a write are needed, explicitly read live context without `--run-id` as an additional step, distinguishing collection time from snapshot version. If the snapshot read fails, disclose the missing information rather than guessing from the title or automatically falling back to live data. See [Execution snapshots and live context](references/cli.md#execution-snapshots-and-live-context).
|
|
69
|
+
|
|
70
|
+
- Fields are title, description, tags, status, assignee and collaborators. Status is open/paused/done; archiving and restoring are separate actions. Creation requires a description. Omitting the assignee on creation defaults to the current user; explicit null is rejected.
|
|
71
|
+
- Use members/options to query member and Thing candidates. Creation, editing and collaborator management follow server permissions. Read the latest version before changes. After a 409, compare the changes instead of merely replacing the version number.
|
|
72
|
+
- Entries use url/note/progress. When type is omitted, the server stores a single HTTP(S) URL as a link and other content as a note. Append progress with entry append --type progress. Edit entries with entry update and expected-updated-at; title, type or body can be changed independently. --clear-title clears the title.
|
|
73
|
+
- Use from-message to turn conversation messages into Things, providing verified conversation-id/message-id values and confirmed body text. Apply the creation signals above without requiring the user to name this command explicitly. Present inferred content as a proposal in the conversation first. Do not use the removed persistent mutation-draft commands.
|
|
74
|
+
- Use conversation primary/bind/unbind for the primary Thing, link-conversation for ordinary references, and conversations to query associations. Linking does not change conversation privacy or permissions.
|
|
75
|
+
- Record interim deliverables as progress entries. Use notes for handoffs, stating completed work, evidence and next steps. Assignees and collaborators are the only people-related collaboration relationships; no separate claiming step is needed.
|
|
76
|
+
- Use asset available/list/link/unlink/publish for files, following the authorization boundaries and deliverable attachment workflow above. Unlinking does not delete a file.
|
|
77
|
+
- Before permanent deletion, read the latest version, explain that deletion is irreversible and which conversations/files remain, then use delete --confirm-delete --yes after explicit confirmation. Wait on active-run conflicts; do not automatically terminate runs.
|
|
78
|
+
- Execute specifically authorized changes directly without asking for the same permission again.
|
|
77
79
|
|
|
78
80
|
```bash
|
|
79
|
-
ae-cli things create --agent-space-id <space-id> --title '
|
|
80
|
-
ae-cli things entry append --agent-space-id <space-id> --id <thing-id> --type progress --content '
|
|
81
|
+
ae-cli things create --agent-space-id <space-id> --title 'API acceptance' --description 'Verify permissions and data consistency' --format json
|
|
82
|
+
ae-cli things entry append --agent-space-id <space-id> --id <thing-id> --type progress --content 'Completed API integration checks' --format json
|
|
81
83
|
```
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
Use [ae-things-review](../ae-things-review/SKILL.md) for reviews and [ae-things-progress](../ae-things-progress/SKILL.md) for periodic summaries. Both synthesize fully collected facts while disclosing unread files, truncation and non-transactional collection limits.
|
|
84
86
|
|
|
85
87
|
Use `things conversations` to list linked conversations and `things conversation get` to read one. Start new conversations from the workspace UI; Things CLI only manages thing links and primary-thing binding.
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Workspace Things CLI reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This reference describes implemented commands without duplicating permission and business-data rules. See the [main spec](https://gitlab.thinkingdata.cn/te-ai/te-claude/-/blob/feat/workspace-issues-convergence/docs/specs/2026-09-17-workspace-issues-convergence/spec.md).
|
|
4
4
|
|
|
5
5
|
Transition status: transitional
|
|
6
6
|
Owning module: te-claude / src/lib/agent-space-things
|
|
7
7
|
Current transport: TE REST /api/cli/things/v1; cli-token
|
|
8
8
|
Gateway target: Capability Gateway things domain (TBD)
|
|
9
9
|
Review after: 2026-10-14
|
|
10
|
-
Exit condition: Gateway
|
|
10
|
+
Exit condition: Migrate the transport when Gateway provides equivalent space validation, idempotency, permissions, pagination and conversation associations.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Things is not yet integrated with Gateway. Typed flags, JSON/stdin, body-redacted dry-run, defaults and target-consistency checks provide the necessary Transitional entry point.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Common parameters
|
|
15
15
|
|
|
16
|
-
`--agent-space-id`
|
|
16
|
+
`--agent-space-id` is required outside a conversation and must match the current conversation's space inside one. `--id` is the Thing ID. Writes use `--command-id <uuid>` for unchanged retries; one is generated when omitted. Editing, archiving and restoring require `--expected-version`. Pagination uses `--limit 1..100 --cursor <opaque>`, defaulting to 50. Global `--format json` produces structured output. `--dry-run` does not call business APIs, read files/stdin or expose body content. Unbinding the primary Thing, unlinking assets and removing collaborators are high-risk-write operations; explicitly authorized scripts use `--yes`.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Fields and entries
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Thing fields are limited to title, description, tags, status, assigneeId and collaboratorIds. Creation requires a title of 1–200 characters and a description of 1–10000 characters. Active statuses are `open | paused | done`; archiving and restoring are separate actions. In both personal and shared spaces, omitting the assignee on creation defaults to the current user. Omitting it on update leaves it unchanged; `null` is rejected. Use `--tags '["tag"]'` and `--collaborator-ids '["member-id"]'`; empty arrays clear these fields. `--assignee-id` must identify a valid space member.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Creation/update can read a camelCase field object with `--file fields.json` or `--stdin`; explicit flags override matching fields. Retired fields for acceptance criteria, priority, groups, due dates, progress snapshots, blockers, next steps and parent/child Things are rejected. The group and draft commands have been removed.
|
|
23
23
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
| `list`
|
|
27
|
-
| `get`
|
|
28
|
-
| `create`
|
|
29
|
-
| `update`
|
|
30
|
-
| `archive/restore`
|
|
31
|
-
| `delete`
|
|
32
|
-
| `members/options`
|
|
33
|
-
| `collaborator add/remove` | `--id --user-id`
|
|
34
|
-
| `entry list`
|
|
35
|
-
| `entry append`
|
|
36
|
-
| `entry update`
|
|
37
|
-
| `from-message`
|
|
24
|
+
| Command | Parameters and results |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `list` | `--query --status open\|paused\|done\|archived --assignee-id`; returns items/nextCursor |
|
|
27
|
+
| `get` | `--id`; fields, permissions, version, collaborators and latestProgress |
|
|
28
|
+
| `create` | `--title --description` and optional business fields |
|
|
29
|
+
| `update` | `--id --expected-version` and business fields |
|
|
30
|
+
| `archive/restore` | `--id --expected-version` |
|
|
31
|
+
| `delete` | `--id --expected-version --confirm-delete --yes`; irreversible, removes the Thing and all associations while retaining conversations, messages, historical run snapshots and space files; active-run conflicts return THING_RUNNING_CONFLICT |
|
|
32
|
+
| `members/options` | Paginated member/Thing candidates; options supports `--query` |
|
|
33
|
+
| `collaborator add/remove` | `--id --user-id` |
|
|
34
|
+
| `entry list` | `--id` and pagination; descending by createdAt, then id |
|
|
35
|
+
| `entry append` | `--id --type url\|note\|progress`; when type is omitted, the server detects a link or note; optional `--title`; exactly one of `--content`, `--file` or `--stdin` |
|
|
36
|
+
| `entry update` | `--id --entry-id --expected-updated-at`; at least one changed field: `--title`, `--clear-title`, `--type note\|url\|progress` or body input; title-only/type-only edits are allowed; title and clear-title are mutually exclusive |
|
|
37
|
+
| `from-message` | `--conversation-id --message-id` and body; choose either `--id` to append or `--title` to create; only append mode with `--id` accepts optional `--entry-type note\|progress`, defaulting to note; supplying it in create mode with `--title` is an error; creation uses the body as the description without an extra progress entry |
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
ae-cli things create --agent-space-id <space-id> --title '
|
|
41
|
-
ae-cli things entry append --agent-space-id <space-id> --id <thing-id> --type progress --content '
|
|
40
|
+
ae-cli things create --agent-space-id <space-id> --title 'Acceptance checks' --description 'Verify member operations and permissions' --format json
|
|
41
|
+
ae-cli things entry append --agent-space-id <space-id> --id <thing-id> --type progress --content 'Completed API integration checks' --format json
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Conversations
|
|
45
45
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| `conversation get`
|
|
49
|
-
| `conversation primary`
|
|
50
|
-
| `conversation bind/unbind` | `--conversation-id
|
|
51
|
-
| `conversations`
|
|
52
|
-
| `link-conversation`
|
|
46
|
+
| Command | Parameters and meaning |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `conversation get` | `--conversation-id`; read an accessible conversation snapshot and its current model projection |
|
|
49
|
+
| `conversation primary` | `--conversation-id`; read the primary-Thing association |
|
|
50
|
+
| `conversation bind/unbind` | `--conversation-id`; bind also requires `--id` |
|
|
51
|
+
| `conversations` | `--id` and pagination; linked conversations |
|
|
52
|
+
| `link-conversation` | `--id --conversation-id`; append a reference without replacing the primary Thing |
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
An association does not grant conversation access; other users' private conversations remain inaccessible. Binding/unbinding is allowed while a conversation is queued, running or waiting for interaction. It updates the association immediately without changing an accepted Run's frozen context, and takes effect for the next new Run. Read back with `conversation primary` after binding; an ordinary reference is not a substitute for a primary-Thing binding.
|
|
55
55
|
|
|
56
|
-
##
|
|
56
|
+
## Progress and summaries
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Record interim deliverables with `entry append --type progress`. Use `--type note` for handoffs, describing completed work, evidence and next steps in the title and body. People-related relationships are assignees and collaborators; no claiming step is needed.
|
|
59
59
|
|
|
60
|
-
`+detail --id`
|
|
60
|
+
`+detail --id` collects the Thing, all readable entries/assets and live context. `+digest` supports an assignee filter or `--thing-ids id-a,id-b`, but not both scopes together. Optional `--from --to --time-zone` values define a start-inclusive, end-exclusive window; timestamps must include a timezone. By default, active and archived Things are paginated separately and deduplicated by ID across collections. Results include three-status open/paused/done counts, archivedCount, items and collection limits. latestProgress uses the server's latest progress entry. effectiveProgressCount counts progress entries only; it does not mean the model has verified their contents. The status timeline's before/after values support baseline reconstruction.
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Each chain is limited to 100 pages / 10000 items. Errors, repeated cursors, continuation after an empty page or reaching a limit set truncated. Duplicate IDs are not evidence of completeness. Reports must check fetchedCount, truncated, consistency and collectedAt. non_transactional is not a transactional snapshot; baseline is null for changed_during_collection or truncation. counts represent state at collection, not period-end state. No recorded update does not mean no progress was made, and an available attachment does not mean it was read or accepted.
|
|
63
63
|
|
|
64
|
-
##
|
|
64
|
+
## Errors and recovery
|
|
65
65
|
|
|
66
|
-
THING_INVALID_INPUT
|
|
66
|
+
For THING_INVALID_INPUT, correct the parameters. For THING_FORBIDDEN/THING_NOT_FOUND, do not infer facts about invisible resources. THING_READ_ONLY means the resource is read-only: restore archived Things before editing, restore space availability for unavailable spaces, and append a new record instead of editing an operation log. For THING_VERSION_CONFLICT/entry timestamp conflicts, reread and compare changes instead of merely replacing the version number. THING_COMMAND_CONFLICT means the same UUID was used for different requests. For THING_RATE_LIMITED, wait and retry with the original commandId. Primary-Thing binding is not rejected merely because a run is active; permanent deletion still retains the THING_RUNNING_CONFLICT active-run guard.
|
|
67
67
|
|
|
68
|
-
##
|
|
68
|
+
## Files and deliverables (phase 4)
|
|
69
69
|
|
|
70
|
-
`asset available`
|
|
70
|
+
`asset available` paginates over actual files and registered metadata in the current space. Registered items return a stable `assetId`; unregistered items have assetId=null and a relative path. `asset link` accepts exactly one of `--asset-id` or `--path`. Linking by path validates, registers and links the file; listing does not register files. `asset list --id` paginates Thing associations. Check availability and scanStatus/scanReason; a partial scan does not establish directory completeness.
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
ae-cli things asset available --agent-space-id <space-id> --limit 100 --format json
|
|
@@ -79,25 +79,27 @@ ae-cli things asset link --agent-space-id <space-id> --id <thing-id> --path <spa
|
|
|
79
79
|
ae-cli things asset unlink --agent-space-id <space-id> --id <thing-id> --asset-id <asset-id> --command-id <uuid> --format json
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
- `role`
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
- `THING_ASSET_UNAVAILABLE`
|
|
82
|
+
- `role` accepts only attachment (the default). deliverable is rejected during argument validation in both normal execution and dry-run. Each Thing/asset pair has only one association.
|
|
83
|
+
- Pass `--confirm-share` for publication; see the Skill for authorization boundaries. Choose exactly one source: artifact-id, file-token or source-path. source-path also requires run-id. The server verifies run ownership, the actual sandbox file and the conversation artifacts directory boundary. Once published to the space, the file is visible to all members.
|
|
84
|
+
- Publication uses the existing conversation-artifact publisher. The publication receipt and asset metadata share a transaction; retrying with the original commandId does not copy again. When the response is `linked:false, assetId, code:THING_ASSET_LINK_FAILED`, the file is already shared. Complete only the association with asset link; do not republish or claim delivery is complete.
|
|
85
|
+
- Unlinking neither deletes the file nor makes it private again. Deleting a referenced asset returns `AGENT_SPACE_ASSET_REFERENCED`; unlink it first.
|
|
86
|
+
- `THING_ASSET_UNAVAILABLE` means the file is missing or cannot be verified. `THING_ASSET_PUBLISH_FAILED` means publication did not complete. File references freeze only the ID and reference text, not immutable body content. Context includes at most the first 10 references and explicitly reports overflow; read the full file list when needed.
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
<a id="执行快照与实时上下文"></a>
|
|
89
|
+
|
|
90
|
+
## Execution snapshots and live context
|
|
89
91
|
|
|
90
92
|
```bash
|
|
91
|
-
#
|
|
93
|
+
# Frozen facts used by this run; take parameters from this run's binding declaration
|
|
92
94
|
ae-cli things context --agent-space-id <space-id> --id <thing-id> --run-id <run-id> --format json
|
|
93
|
-
#
|
|
95
|
+
# Explicitly read current facts; existing behavior without run-id is unchanged
|
|
94
96
|
ae-cli things context --agent-space-id <space-id> --id <thing-id> --format json
|
|
95
97
|
```
|
|
96
98
|
|
|
97
|
-
|
|
99
|
+
With `--run-id`, the existing GET context request includes the `runId` parameter and returns the saved snapshot with `source: {kind: "run_snapshot", runId}`, `currentFiles` and `fileReferencePolicy`. `thing.version`/`capturedAt` are the version/time at acceptance; `currentFiles` contains currently available paths. File body versions are not guaranteed to be frozen; read them before use. Existing `notices` remain. Without this parameter, the original live context is returned. A run is not selected automatically from environment variables, and `+detail`/`+digest` continue collecting live data.
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
The run, conversation, space and original Thing in the snapshot must match, and the caller must still have access; a run ID is not authorization. The conversation's current primary Thing may have changed or been unbound; waits/resumes/retries in this run still read the original snapshot. `THING_TARGET_CONFLICT` means the snapshot and requested target differ; reconfirm the target. `THING_CONTEXT_UNAVAILABLE` means the snapshot is missing or corrupt; start a new execution instead of automatically falling back to live reads. `THING_NOT_FOUND` does not distinguish nonexistent from invisible resources. Archived Things and unavailable files continue using `THING_READ_ONLY` / `THING_ASSET_UNAVAILABLE`.
|
|
100
102
|
|
|
101
|
-
|
|
103
|
+
Switching or unbinding retains history and the provider session. It changes only the conversation association and the next new Run's default target; it does not erase memory or revoke access. Ordinary chat does not need a Thing lookup; specific Thing work reads the snapshot first. Current state and pre-write versions require an additional explicit live read. Disclose missing information when tools fail. **Changes to existing Things** require explicit user authorization or confirmation; a historical association does not authorize writeback. Creating new Things is not subject to that restriction: decide proactively using the [Skill's creation signals](../SKILL.md#when-to-create-things).
|
|
102
104
|
|
|
103
|
-
|
|
105
|
+
The owning module continues using the Things Transitional transport. The added parameter does not create a synonymous command or a separate Gateway entry point; the migration exit condition remains the admission record in this reference. The cross-repository implementation contract is te-claude `docs/specs/2026-09-17-workspace-issues-convergence/spec.md`; deliver the application and CLI/Skill together.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-things-progress
|
|
3
|
-
description: "
|
|
3
|
+
description: "Workspace Thing progress, daily reports and weekly reports: use ae-cli things to collect period facts for the current space, an assignee or an explicit set of Things, then summarize them with the current conversation model and disclose data limitations."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Thing progress summaries
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Adapt the fact-collection and output contracts from aha-links. Read [Thing operations](../ae-things/SKILL.md) and the [CLI reference](../ae-things/references/cli.md) first. The CLI collects facts and the current model summarizes them; do not call a separate reporting backend. Write reports and report titles in the user's language.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
When working with the Thing bound to this run, first read its execution snapshot as described in [Execution snapshots and live context](../ae-things/references/cli.md#execution-snapshots-and-live-context). Then collect the latest review or period facts using the workflow below, and describe these sources separately. Without a binding, use only the scope explicitly specified by the user.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Scope and time
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
ae-cli things +digest --agent-space-id <space-id> --from 2026-09-07T00:00:00+08:00 --to 2026-09-14T00:00:00+08:00 --time-zone Asia/Shanghai --format json
|
|
@@ -17,27 +17,27 @@ ae-cli things +digest --agent-space-id <space-id> --assignee-id <member-id> --fo
|
|
|
17
17
|
ae-cli things +digest --agent-space-id <space-id> --thing-ids <id-a>,<id-b> --format json
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Never guess IDs or select a personal default space. Watchlists, groups and cross-space summaries are unsupported. Daily reports cover calendar days; weekly reports run from Monday 00:00 to the next Monday 00:00, defaulting to Asia/Shanghai. For today/this week, use the current time as the cutoff; for yesterday/last week, use the complete period. Custom intervals must be explicit. Command from/to values must include a timezone, and intervals are start-inclusive and end-exclusive.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Convert recorded ISO timestamps to the report timezone and label the timezone beside the time window, collection time and evidence dates. For example, `2026-09-10T04:50:00Z` should appear as `2026-09-10 12:50 (Asia/Shanghai)` in Asia/Shanghai. Removing Z and calling 04:50 "Shanghai time" is incorrect. If reliable conversion is unavailable, retain the original ISO value, label it UTC and disclose that it has not been converted; never fabricate a local time.
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## Evidence and completeness
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Check `fetchedCount`, `truncated`, `consistency` and `collectedAt`; for explicit sets, also check `requestedCount` and `unreadable`. Stop making complete-coverage conclusions when fields are missing. The CLI automatically paginates up to 100 pages / 10000 items per chain and marks errors or limits as truncation. A single-page list is not a substitute for complete collection.
|
|
27
27
|
|
|
28
|
-
- `thing`
|
|
29
|
-
- `lastEffectiveRecordBeforeWindow`
|
|
30
|
-
-
|
|
31
|
-
- open/paused/done
|
|
32
|
-
-
|
|
33
|
-
-
|
|
28
|
+
- `thing` is the current state, `entries` are records within the window, and `baseline` is the pre-window state reconstructed from complete business-change records. Do not invent a baseline when it is missing or versions changed during collection.
|
|
29
|
+
- `lastEffectiveRecordBeforeWindow` locates pre-window evidence. Current state is not a change within the period and cannot directly substitute for period-end state.
|
|
30
|
+
- Before output, compare `collectedAt` with the window's `to`. When `collectedAt < to` (including a user-specified full calendar week that has not ended), state that this is an interim summary as of collection time and the period is still open. Label three-status counts as "state at collection", not "period-end state" or "no later updates". For example, a September 7–14 weekly report collected on September 10 cannot claim that September 14 state equals current state. Even after a window ends, reconstruct period-end state only when complete post-window change evidence supports it.
|
|
31
|
+
- Count open/paused/done separately and report archived Things separately. The latest progress comes from thing.latestProgress; read progress/status records for historical changes.
|
|
32
|
+
- Notes and repeated process descriptions are not effective progress. `effectiveProgressCount` is a candidate count to verify; exclude records whose bodies add no new information.
|
|
33
|
+
- With no records, say only "no update recorded". Apply this constraint to summaries and next-step suggestions too. open does not prove work has not started; report only current status and the absence of recorded facts. Disclose unread or inaccessible attachments, truncation and non-transactional limits across multiple requests. For `changed_during_collection`, reread first; if changes continue, retain the limitation rather than claiming a static, complete collection.
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Output and writeback
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Start with the scope, time window, collection time and coverage limits. Then give three-status and archive counts, changes during the period, blockers and next steps. Attach Thing sources and dates to every significant judgment, distinguishing facts, inferences and recommendations. Do not display internal record IDs by default.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Output only in the conversation by default. When writeback is explicitly requested, use `+detail` to read all report entries on the target Thing and check for a title covering the same scope and period. Then write the final body with `ae-cli things entry append --id <target-id> --type note --title "Things weekly report | date range | scope" --stdin --command-id <uuid> --format json`. The suggested title pattern is `Things weekly report | date range | scope` (or daily report), localized to the user's language. If a report for the same scope and period already exists, propose a revision instead of silently overwriting or appending a duplicate. Append a new revision only when the user explicitly requests it, preserving the original report. Do not ask for the same writeback permission again once it is granted.
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Do not automatically send messages, change status, assign owners or create scheduled tasks.
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
File evidence: +detail/+digest automatically paginate asset associations. Files with availability=missing or verification_failed are not available deliverables. Even available only means the reference is available, not that its contents were read or acceptance passed. Disclose unread files and non-transactional collection limits. Read private conversation sources only when the current user has access. Cite shared Thing facts in the report; do not automatically disclose private history.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-things-review
|
|
3
|
-
description: "
|
|
3
|
+
description: "Workspace Thing reviews: use ae-cli things titles, descriptions, statuses and complete timelines to assess scope drift, missing recorded effective updates, work breakdown, ownership and completion evidence. Read-only by default."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Thing progress review
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Apply the evidence-based review method from aha-links using TE space permissions, three statuses and separate archiving. Read [Thing operations](../ae-things/SKILL.md) and the [collection contract](../ae-things/references/cli.md) first. Never guess Thing, space or assignee IDs. Write the review in the user's language.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
When working with the Thing bound to this run, first read its execution snapshot as described in [Execution snapshots and live context](../ae-things/references/cli.md#execution-snapshots-and-live-context). Then collect the latest review or period facts using the workflow below, and describe these sources separately. Without a binding, use only the scope explicitly specified by the user.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Collect facts
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
ae-cli things +detail --agent-space-id <space-id> --id <thing-id> --format json
|
|
@@ -17,26 +17,26 @@ ae-cli things +digest --agent-space-id <space-id> --format json
|
|
|
17
17
|
ae-cli things +digest --agent-space-id <space-id> --thing-ids <id-a>,<id-b> --format json
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Supported scopes are the current space, an assignee or an explicit set of Things. Do not import watchlist or Feishu-group scopes. Screen broad scopes first, then review at most 20 Things deeply per batch. Disclose both the screening count and the deep-review count.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Check `fetchedCount`, `truncated`, `consistency` and `collectedAt`. Missing fields indicate an incompatible contract. When collection is truncated or resources are unreadable, limit conclusions to the facts covered; the first 100 Things are not a complete collection. For `changed_during_collection`, reread affected Things. `non_transactional` still does not mean a strict snapshot at one instant. Explicitly disclose unread attachments, private history and missing original goals.
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## Review sequence
|
|
25
25
|
|
|
26
|
-
1.
|
|
27
|
-
2.
|
|
28
|
-
3.
|
|
29
|
-
4.
|
|
30
|
-
5.
|
|
26
|
+
1. Goal and acceptance: are they clear, reasonable and verifiable? Compare the current goal with the earliest `created` record. If the original goal cannot be reconstructed, review only the current goal.
|
|
27
|
+
2. Scope drift: are goal changes explicitly recorded? Do not treat later conclusions as the original goal.
|
|
28
|
+
3. Effective updates: progress requires a result, change, blocker or explicit next step. Progress entries are candidates to verify. Placeholders, repeated statuses, notes and title-only edits do not reset the reminder cadence. Collected counts are only candidates; the model must still check whether the body contains an effective update.
|
|
29
|
+
4. Ownership: are the assignee and collaborators available, and do the description and progress identify the next step?
|
|
30
|
+
5. Completion evidence: are outputs accessible and do they satisfy acceptance criteria? Unread files cannot be claimed to have passed acceptance.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Prefer an explicitly agreed cadence. open means incomplete and does not distinguish not started from in progress. Without an agreed cadence, report only the last recorded time rather than inventing stagnation. For paused, check the recorded reason and conditions for resuming. Say "no update recorded", not "no progress made".
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Always identify the timezone when citing timestamps. To determine calendar days in Asia/Shanghai, correctly convert ISO timestamps with Z/offsets rather than removing the suffix. For example, `2026-09-10T04:50:00Z` corresponds to 12:50 in Shanghai. If conversion is unavailable, retain the original UTC value and disclose the limitation.
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Output and boundaries
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Classify each review as healthy / needs attention / high risk / insufficient information. Include the goal baseline, evidence (Thing links and dates), impact, confidence and at most three priority actions. For a space review, present common issues before per-Thing summaries. Do not evaluate individual performance or invent an overall score.
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Diagnose only by default, without changing status or assignees. For specific changes the user explicitly asks you to implement, reread the version and execute without asking for the same authorization again. Present inferred changes as proposals awaiting confirmation. Do not automatically send messages or create scheduled tasks.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
File evidence: +detail/+digest automatically paginate asset associations. Files with availability=missing or verification_failed are not available deliverables. Even available only means the reference is available, not that its contents were read or acceptance passed. Disclose unread files and non-transactional collection limits. Read private conversation sources only when the current user has access. Cite shared Thing facts in the report; do not automatically disclose private history.
|