railwise-ai 1.2.32 → 1.2.34

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 (173) hide show
  1. package/agent-pack/README.md +16 -0
  2. package/agent-pack/assets/agent/chief_manager.md +69 -0
  3. package/agent-pack/assets/agent/commercial_specialist.md +47 -0
  4. package/agent-pack/assets/agent/data_analyst.md +54 -0
  5. package/agent-pack/assets/agent/docs.md +38 -0
  6. package/agent-pack/assets/agent/duplicate-pr.md +25 -0
  7. package/agent-pack/assets/agent/qa_inspector.md +58 -0
  8. package/agent-pack/assets/agent/qa_reviewer.md +57 -0
  9. package/agent-pack/assets/agent/solution_architect.md +53 -0
  10. package/agent-pack/assets/agent/technical_writer.md +61 -0
  11. package/agent-pack/assets/agent/translator.md +34 -0
  12. package/agent-pack/assets/agent/triage.md +139 -0
  13. package/agent-pack/assets/command/ai-deps.md +24 -0
  14. package/agent-pack/assets/command/bid-intel.md +29 -0
  15. package/agent-pack/assets/command/bid-prepare.md +24 -0
  16. package/agent-pack/assets/command/commit.md +37 -0
  17. package/agent-pack/assets/command/daily-report.md +26 -0
  18. package/agent-pack/assets/command/data-check.md +22 -0
  19. package/agent-pack/assets/command/emergency-response.md +66 -0
  20. package/agent-pack/assets/command/issues.md +23 -0
  21. package/agent-pack/assets/command/learn.md +42 -0
  22. package/agent-pack/assets/command/monthly-report.md +35 -0
  23. package/agent-pack/assets/command/payment-reminder.md +27 -0
  24. package/agent-pack/assets/command/plan-draft.md +28 -0
  25. package/agent-pack/assets/command/review-response.md +23 -0
  26. package/agent-pack/assets/command/rmslop.md +15 -0
  27. package/agent-pack/assets/command/safety-check.md +20 -0
  28. package/agent-pack/assets/command/spellcheck.md +5 -0
  29. package/agent-pack/assets/command/trend-analysis.md +38 -0
  30. package/agent-pack/assets/command/weekly-report.md +28 -0
  31. package/agent-pack/assets/lib/os_api.ts +100 -0
  32. package/agent-pack/assets/skill/adjustment-report/SKILL.md +88 -0
  33. package/agent-pack/assets/skill/approval-flow-intelligence/SKILL.md +123 -0
  34. package/agent-pack/assets/skill/bidding-knowledge/SKILL.md +98 -0
  35. package/agent-pack/assets/skill/bun-file-io/SKILL.md +42 -0
  36. package/agent-pack/assets/skill/business-finance/SKILL.md +91 -0
  37. package/agent-pack/assets/skill/business-operations-analytics/SKILL.md +120 -0
  38. package/agent-pack/assets/skill/cad-bim-review/SKILL.md +84 -0
  39. package/agent-pack/assets/skill/canvas-design/SKILL.md +141 -0
  40. package/agent-pack/assets/skill/construction-monitoring/SKILL.md +89 -0
  41. package/agent-pack/assets/skill/customer-portal-brief/SKILL.md +121 -0
  42. package/agent-pack/assets/skill/data-analysis/SKILL.md +79 -0
  43. package/agent-pack/assets/skill/di-bao-monitoring/SKILL.md +680 -0
  44. package/agent-pack/assets/skill/di-bao-monitoring/agents/openai.yaml +4 -0
  45. package/agent-pack/assets/skill/di-bao-monitoring/assets/crossing-static-level-input-template.csv +2 -0
  46. package/agent-pack/assets/skill/di-bao-monitoring/assets/crossing-total-station-input-template.csv +2 -0
  47. package/agent-pack/assets/skill/di-bao-monitoring/assets/crossing-total-station-report-template.md +59 -0
  48. package/agent-pack/assets/skill/di-bao-monitoring/assets/daily-report-template.md +90 -0
  49. package/agent-pack/assets/skill/di-bao-monitoring/assets/data-input-template.csv +2 -0
  50. package/agent-pack/assets/skill/di-bao-monitoring/assets/initial-value-report-template.md +92 -0
  51. package/agent-pack/assets/skill/di-bao-monitoring/assets/monthly-report-template.md +103 -0
  52. package/agent-pack/assets/skill/di-bao-monitoring/assets/plan-template.md +673 -0
  53. package/agent-pack/assets/skill/di-bao-monitoring/assets/point-alias-map-template.json +25 -0
  54. package/agent-pack/assets/skill/di-bao-monitoring/assets/project-brief-template.md +59 -0
  55. package/agent-pack/assets/skill/di-bao-monitoring/assets/project-summary-template.md +154 -0
  56. package/agent-pack/assets/skill/di-bao-monitoring/assets/warning-notice-template.md +58 -0
  57. package/agent-pack/assets/skill/di-bao-monitoring/assets/weekly-report-template.md +49 -0
  58. package/agent-pack/assets/skill/di-bao-monitoring/assets//345/256/214/346/225/264/346/212/245/350/241/250/346/250/241/346/235/277.xlsx +0 -0
  59. package/agent-pack/assets/skill/di-bao-monitoring/assets//345/277/253/346/212/245/346/250/241/346/235/277.xlsx +0 -0
  60. package/agent-pack/assets/skill/di-bao-monitoring/references/crossing-static-level-report.md +115 -0
  61. package/agent-pack/assets/skill/di-bao-monitoring/references/crossing-total-station-report.md +206 -0
  62. package/agent-pack/assets/skill/di-bao-monitoring/references/data-processing.md +170 -0
  63. package/agent-pack/assets/skill/di-bao-monitoring/references/elevated-line.md +319 -0
  64. package/agent-pack/assets/skill/di-bao-monitoring/references/initial-and-summary-workflow.md +222 -0
  65. package/agent-pack/assets/skill/di-bao-monitoring/references/key-difficulties.md +216 -0
  66. package/agent-pack/assets/skill/di-bao-monitoring/references/monitoring-catalog.md +80 -0
  67. package/agent-pack/assets/skill/di-bao-monitoring/references/phase0-intake.md +169 -0
  68. package/agent-pack/assets/skill/di-bao-monitoring/references/phase1-drafting.md +185 -0
  69. package/agent-pack/assets/skill/di-bao-monitoring/references/phase2-internal-review.md +166 -0
  70. package/agent-pack/assets/skill/di-bao-monitoring/references/report-workflow.md +181 -0
  71. package/agent-pack/assets/skill/di-bao-monitoring/references/review-checklist.md +140 -0
  72. package/agent-pack/assets/skill/di-bao-monitoring/references/review-response-template.md +87 -0
  73. package/agent-pack/assets/skill/di-bao-monitoring/references/scoping-and-pricing.md +214 -0
  74. package/agent-pack/assets/skill/di-bao-monitoring/references/source-analysis.md +137 -0
  75. package/agent-pack/assets/skill/di-bao-monitoring/references/technical-standards.md +188 -0
  76. package/agent-pack/assets/skill/di-bao-monitoring/references/toc-template-A.md +142 -0
  77. package/agent-pack/assets/skill/di-bao-monitoring/references/toc-template-B.md +100 -0
  78. package/agent-pack/assets/skill/di-bao-monitoring/references/warning-workflow.md +63 -0
  79. package/agent-pack/assets/skill/di-bao-monitoring/scripts/build_crossing_total_station_xlsx.py +2438 -0
  80. package/agent-pack/assets/skill/di-bao-monitoring/scripts/evaluate_alarms.py +215 -0
  81. package/agent-pack/assets/skill/di-bao-monitoring/scripts/fetch_adjusted_total_station.py +946 -0
  82. package/agent-pack/assets/skill/di-bao-monitoring/scripts/fetch_shhh_static_level.py +556 -0
  83. package/agent-pack/assets/skill/di-bao-monitoring/scripts/run_crossing_4h_report.sh +141 -0
  84. package/agent-pack/assets/skill/di-bao-monitoring/scripts/summarize_crossing_total_station.py +303 -0
  85. package/agent-pack/assets/skill/docx-generation/SKILL.md +141 -0
  86. package/agent-pack/assets/skill/excel-operations/SKILL.md +121 -0
  87. package/agent-pack/assets/skill/frontend-design/SKILL.md +151 -0
  88. package/agent-pack/assets/skill/humanizer/SKILL.md +90 -0
  89. package/agent-pack/assets/skill/monitoring-design/SKILL.md +100 -0
  90. package/agent-pack/assets/skill/operational-monitoring/SKILL.md +135 -0
  91. package/agent-pack/assets/skill/operational-monitoring/assets/checklists/archive-self-check.md +54 -0
  92. package/agent-pack/assets/skill/operational-monitoring/assets/schemas/convergence-result-table.csv +5 -0
  93. package/agent-pack/assets/skill/operational-monitoring/assets/schemas/horizontal-result-table.csv +3 -0
  94. package/agent-pack/assets/skill/operational-monitoring/assets/schemas/settlement-result-table.csv +7 -0
  95. package/agent-pack/assets/skill/operational-monitoring/assets/scripts/init-archive-tree.sh +65 -0
  96. package/agent-pack/assets/skill/operational-monitoring/assets/templates/control-network-report.md +102 -0
  97. package/agent-pack/assets/skill/operational-monitoring/assets/templates/daily-log.md +47 -0
  98. package/agent-pack/assets/skill/operational-monitoring/assets/templates/i-angle-check.md +38 -0
  99. package/agent-pack/assets/skill/operational-monitoring/assets/templates/monitoring-scheme.md +234 -0
  100. package/agent-pack/assets/skill/operational-monitoring/assets/templates/period-report.md +95 -0
  101. package/agent-pack/assets/skill/operational-monitoring/assets/templates/point-acceptance-record.md +51 -0
  102. package/agent-pack/assets/skill/operational-monitoring/assets/templates/point-installation-record.md +38 -0
  103. package/agent-pack/assets/skill/operational-monitoring/assets/templates/summary-report.md +89 -0
  104. package/agent-pack/assets/skill/operational-monitoring/assets/templates/warning-bulletin.md +61 -0
  105. package/agent-pack/assets/skill/operational-monitoring/assets/templates/weekly-monthly-report.md +46 -0
  106. package/agent-pack/assets/skill/operational-monitoring/references/archive-and-delivery.md +146 -0
  107. package/agent-pack/assets/skill/operational-monitoring/references/baseline-network.md +131 -0
  108. package/agent-pack/assets/skill/operational-monitoring/references/convergence-monitoring.md +134 -0
  109. package/agent-pack/assets/skill/operational-monitoring/references/data-processing.md +178 -0
  110. package/agent-pack/assets/skill/operational-monitoring/references/horizontal-displacement.md +128 -0
  111. package/agent-pack/assets/skill/operational-monitoring/references/monitoring-points.md +132 -0
  112. package/agent-pack/assets/skill/operational-monitoring/references/monitoring-scheme.md +178 -0
  113. package/agent-pack/assets/skill/operational-monitoring/references/period-report.md +108 -0
  114. package/agent-pack/assets/skill/operational-monitoring/references/regulations-and-frequency.md +127 -0
  115. package/agent-pack/assets/skill/operational-monitoring/references/settlement-monitoring.md +116 -0
  116. package/agent-pack/assets/skill/operational-monitoring/references/summary-report.md +128 -0
  117. package/agent-pack/assets/skill/operational-monitoring/references/warning-and-disposal.md +118 -0
  118. package/agent-pack/assets/skill/ops-monitoring/SKILL.md +93 -0
  119. package/agent-pack/assets/skill/railwise-knowledge-curation/SKILL.md +92 -0
  120. package/agent-pack/assets/skill/report-dibao/SKILL.md +60 -0
  121. package/agent-pack/assets/skill/report-writing/SKILL.md +103 -0
  122. package/agent-pack/assets/skill/resource-dispatch-intelligence/SKILL.md +125 -0
  123. package/agent-pack/assets/skill/standard-reference/SKILL.md +101 -0
  124. package/agent-pack/assets/skill/weekly-work-intelligence/SKILL.md +123 -0
  125. package/agent-pack/assets/template/adjustment-trend.json +53 -0
  126. package/agent-pack/assets/template/bid-technical-proposal.json +42 -0
  127. package/agent-pack/assets/template/compliance-review.json +35 -0
  128. package/agent-pack/assets/template/daily-monitor-report.json +34 -0
  129. package/agent-pack/assets/template/field-data-qa.json +47 -0
  130. package/agent-pack/assets/template/monitoring-plan.json +28 -0
  131. package/agent-pack/assets/template/monthly-monitor-report.json +47 -0
  132. package/agent-pack/assets/template/project-ppt.json +47 -0
  133. package/agent-pack/assets/template/review-response.json +28 -0
  134. package/agent-pack/assets/template/schema.json +72 -0
  135. package/agent-pack/assets/template/weekly-monitor-report.json +33 -0
  136. package/agent-pack/assets/theme/mytheme.json +223 -0
  137. package/agent-pack/assets/tool/angle_convert.ts +151 -0
  138. package/agent-pack/assets/tool/axial_force.ts +186 -0
  139. package/agent-pack/assets/tool/chart_generator.ts +185 -0
  140. package/agent-pack/assets/tool/control_network.ts +413 -0
  141. package/agent-pack/assets/tool/coord_transform.ts +333 -0
  142. package/agent-pack/assets/tool/cpiii_adjustment.ts +446 -0
  143. package/agent-pack/assets/tool/cross_section.ts +356 -0
  144. package/agent-pack/assets/tool/deformation_rate.ts +234 -0
  145. package/agent-pack/assets/tool/distance_calculator.ts +239 -0
  146. package/agent-pack/assets/tool/excel_export.ts +494 -0
  147. package/agent-pack/assets/tool/format_parser.ts +181 -0
  148. package/agent-pack/assets/tool/github-pr-search.ts +57 -0
  149. package/agent-pack/assets/tool/github-pr-search.txt +10 -0
  150. package/agent-pack/assets/tool/github-triage.ts +113 -0
  151. package/agent-pack/assets/tool/github-triage.txt +6 -0
  152. package/agent-pack/assets/tool/inclinometer.ts +248 -0
  153. package/agent-pack/assets/tool/monitoring_csv.ts +120 -0
  154. package/agent-pack/assets/tool/os_contract_query.ts +63 -0
  155. package/agent-pack/assets/tool/os_dibao_project_files.ts +75 -0
  156. package/agent-pack/assets/tool/os_file_download_ref.ts +48 -0
  157. package/agent-pack/assets/tool/os_file_preview.ts +46 -0
  158. package/agent-pack/assets/tool/os_gbrain_think.ts +31 -0
  159. package/agent-pack/assets/tool/os_ppt_generate.ts +37 -0
  160. package/agent-pack/assets/tool/os_project_context.ts +24 -0
  161. package/agent-pack/assets/tool/os_report_publish.ts +28 -0
  162. package/agent-pack/assets/tool/os_wiki_ingest.ts +38 -0
  163. package/agent-pack/assets/tool/os_wiki_query.ts +26 -0
  164. package/agent-pack/assets/tool/pile_stakeout.ts +299 -0
  165. package/agent-pack/assets/tool/report_export.ts +279 -0
  166. package/agent-pack/assets/tool/shield_guidance.ts +311 -0
  167. package/agent-pack/assets/tool/standard_query.ts +391 -0
  168. package/agent-pack/assets/tool/survey_calculator.ts +415 -0
  169. package/agent-pack/assets/tool/water_level.ts +209 -0
  170. package/agent-pack/bin/install.js +183 -0
  171. package/agent-pack/package.json +695 -0
  172. package/package.json +14 -8
  173. package/postinstall.mjs +53 -22
@@ -0,0 +1,100 @@
1
+ type QueryValue = string | number | boolean | null | undefined
2
+ export type Obj = Record<string, unknown>
3
+
4
+ type CallOptions = {
5
+ method?: "GET" | "POST" | "PUT" | "DELETE"
6
+ query?: Record<string, QueryValue>
7
+ body?: unknown
8
+ timeoutMs?: number
9
+ }
10
+
11
+ export class OsApiError extends Error {
12
+ status: number
13
+ details: unknown
14
+
15
+ constructor(message: string, status: number, details: unknown) {
16
+ super(message)
17
+ this.name = "OsApiError"
18
+ this.status = status
19
+ this.details = details
20
+ }
21
+ }
22
+
23
+ export function obj(value: unknown) {
24
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null
25
+ return value as Obj
26
+ }
27
+
28
+ export function list(value: unknown) {
29
+ if (!Array.isArray(value)) return []
30
+ return value.map(obj).filter((item): item is Obj => Boolean(item))
31
+ }
32
+
33
+ export function text(value: unknown) {
34
+ if (value === undefined || value === null) return ""
35
+ return String(value)
36
+ }
37
+
38
+ export function first(item: Obj | null | undefined, keys: string[]) {
39
+ return text(keys.map((key) => item?.[key]).find((value) => value !== undefined && value !== null && value !== ""))
40
+ }
41
+
42
+ export function num(value: unknown) {
43
+ return Number(value || 0)
44
+ }
45
+
46
+ function baseUrl() {
47
+ return (process.env.RAILWISE_OS_API_BASE || "http://railwise-os-api:3001/api/v1").replace(/\/+$/, "")
48
+ }
49
+
50
+ function appendQuery(url: URL, query: Record<string, QueryValue> = {}) {
51
+ for (const [key, value] of Object.entries(query)) {
52
+ if (value === undefined || value === null || value === "") continue
53
+ url.searchParams.set(key, String(value))
54
+ }
55
+ }
56
+
57
+ async function parseResponse(res: Response) {
58
+ const text = await res.text()
59
+ if (!text) return null
60
+ try {
61
+ return JSON.parse(text)
62
+ } catch {
63
+ return { raw: text }
64
+ }
65
+ }
66
+
67
+ export async function callOsApi(path: string, options: CallOptions = {}) {
68
+ const url = new URL(`${baseUrl()}${path.startsWith("/") ? path : `/${path}`}`)
69
+ appendQuery(url, options.query)
70
+
71
+ const token = process.env.RAILWISE_OS_INTERNAL_TOKEN || ""
72
+ const headers: Record<string, string> = { Accept: "application/json" }
73
+ if (token) headers["X-Railwise-Internal-Token"] = token
74
+ if (options.body !== undefined) headers["Content-Type"] = "application/json"
75
+
76
+ const res = await fetch(url, {
77
+ method: options.method || (options.body === undefined ? "GET" : "POST"),
78
+ headers,
79
+ body: options.body === undefined ? undefined : JSON.stringify(options.body),
80
+ signal: AbortSignal.timeout(options.timeoutMs || 60_000),
81
+ })
82
+ const payload = await parseResponse(res)
83
+ const data = obj(payload)
84
+ const code = typeof data?.code === "number" ? data.code : res.status
85
+
86
+ if (!res.ok || (data && typeof data.code === "number" && data.code !== 200)) {
87
+ throw new OsApiError(first(data, ["message"]) || `OS API request failed: ${url.pathname}`, code, payload)
88
+ }
89
+
90
+ return data?.data ?? payload
91
+ }
92
+
93
+ export function prettyJson(value: unknown) {
94
+ return JSON.stringify(value, null, 2)
95
+ }
96
+
97
+ export function clipText(value: unknown, maxChars = 8000) {
98
+ const text = typeof value === "string" ? value : prettyJson(value)
99
+ return text.length > maxChars ? `${text.slice(0, maxChars)}\n...[truncated]` : text
100
+ }
@@ -0,0 +1,88 @@
1
+ # 内业平差报告 Skill
2
+
3
+ ## 适用对象
4
+
5
+ - `inhouse_project`
6
+ - `inhouse_result`
7
+ - 通用 `project` 中已绑定内业平差项目的对象
8
+
9
+ 不适用于重新计算正式平差值,也不替代算法引擎、人工复核和成果签认。
10
+
11
+ ## OS Native 输入
12
+
13
+ 优先读取:
14
+
15
+ 1. `input/locked-facts.json`
16
+ 2. `input/locked-adjustment-facts.json`
17
+ 3. `input/context-pack.json`
18
+ 4. `input/inhouse-adjustment-context.json`
19
+ 5. `input/capability-blueprint.json`
20
+
21
+ 原始观测、已知点、导线/水准/GPS 记录、确定性检查结果、平差成果、限差、异常点、写回预检都必须来自 locked 文件。
22
+
23
+ ## 数据源优先级
24
+
25
+ 1. OS 内业项目、已知点、原始观测记录。
26
+ 2. 算法引擎已产生的 `ih_results`、`ih_check_reports`。
27
+ 3. OS 写回预检、快照和审计记录。
28
+ 4. 用户补充的返工说明或复核重点。
29
+
30
+ ## 追问策略
31
+
32
+ 缺成果类型时询问:导线、水准、GPS、控制网、全部。
33
+
34
+ 缺报告目的时询问:成果解释、检查报告、返工建议、写回复核。
35
+
36
+ 存在超限但缺现场说明时询问:补充观测记录、补充现场原因、先生成待复核说明。
37
+
38
+ ## 输出 JSON Schema
39
+
40
+ ```json
41
+ {
42
+ "summary": "string",
43
+ "resultExplanation": ["string"],
44
+ "qualityNotes": [
45
+ {
46
+ "item": "string",
47
+ "status": "passed|warning|failed|unknown",
48
+ "sourceRefs": ["string"],
49
+ "suggestion": "string"
50
+ }
51
+ ],
52
+ "reworkItems": [
53
+ {
54
+ "priority": "high|medium|low",
55
+ "action": "string",
56
+ "sourceRefs": ["string"]
57
+ }
58
+ ],
59
+ "missingInputs": ["string"]
60
+ }
61
+ ```
62
+
63
+ ## 禁止事项
64
+
65
+ - 不得重新计算或修改平差成果、闭合差、限差、坐标或高程。
66
+ - 不得把算法未通过的成果写成合格。
67
+ - 不得删除异常点或淡化返工要求。
68
+ - 不得输出没有来源引用的正式技术结论。
69
+
70
+ ## 报告模板
71
+
72
+ ```markdown
73
+ ## 内业成果概况
74
+
75
+ ## 输入资料和计算结果
76
+
77
+ ## 限差与质量检查
78
+
79
+ ## 异常点和返工建议
80
+
81
+ ## 写回 OS 前复核意见
82
+ ```
83
+
84
+ ## 示例
85
+
86
+ 输入:`inhouse.check.report.generate`,locked facts 有 12 个已知点、1 个平差成果、1 份检查报告。
87
+
88
+ 输出:检查报告草稿引用 locked facts 中的成果 ID 和检查报告 ID,不生成新坐标。
@@ -0,0 +1,123 @@
1
+ # 办公审批 AI Native Skill
2
+
3
+ ## 适用对象
4
+
5
+ - `approval_flow`
6
+ - `approval_instance`
7
+ - `workflow`
8
+
9
+ 用于办公审批台、我的待办、审批详情页中的 AI Native 摘要、附件检查和卡点解释。
10
+
11
+ ## 不适用对象
12
+
13
+ - 不适用于替代审批人作出通过、驳回、付款或盖章决定。
14
+ - 不适用于经营指标分析、合同条款专业法律审查、发票真伪判定或财务入账结论。
15
+ - 不适用于未进入 RAILWISE-OS 审批 locked facts 的聊天记录、口头意见或外部文件。
16
+ - 不适用于输出员工绩效、态度或责任归因评价。
17
+
18
+ ## OS Native 输入
19
+
20
+ 运行时必须优先读取:
21
+
22
+ - `input/object-ref.json`
23
+ - `input/actor-context.json`
24
+ - `input/permission-scope.json`
25
+ - `input/context-pack.json`
26
+ - `input/locked-facts.json`
27
+ - `input/capability-blueprint.json`
28
+ - `input/approval-flow-context.json`
29
+ - `input/locked-approval-facts.json`
30
+ - `input/approval-flow-blueprint.json`
31
+ - `input/skill-context.md`
32
+
33
+ 审批标题、类型、状态、当前审批人、金额、表单数据、附件和流转日志均以 locked facts 为准。
34
+
35
+ ## 数据源优先级
36
+
37
+ 1. RAILWISE-OS `locked-approval-facts.json`。
38
+ 2. RAILWISE-OS `locked-facts.json`。
39
+ 3. 用户在引导面板选择的审批类型、时间范围、输出深度。
40
+ 4. 不允许从聊天上下文猜测审批状态或附件。
41
+
42
+ ## locked 数据边界
43
+
44
+ - AI 不得修改审批状态、审批人、金额、附件列表、日志和流程节点。
45
+ - AI 可以解释卡点、总结流转、列出附件缺口、给出补件或催办建议。
46
+ - 附件缺失必须引用 `attachmentGaps` 或对应 workflow sourceRef。
47
+
48
+ ## 追问策略
49
+
50
+ 当信息不足时,优先追问选择题:
51
+
52
+ - 范围:我的待办 / 我发起的 / 全公司可见审批。
53
+ - 类型:报销 / 采购 / 发票 / 合同盖章 / 付款。
54
+ - 输出:流转摘要 / 附件核查 / 卡点解释。
55
+ - 动作:提醒审批人 / 补充附件 / 退回修改 / 继续等待。
56
+
57
+ ## 输出 JSON Schema
58
+
59
+ 写入 `output/result.json`:
60
+
61
+ ```json
62
+ {
63
+ "result": {
64
+ "summary": "string",
65
+ "findings": ["string"],
66
+ "risks": [
67
+ {
68
+ "title": "string",
69
+ "severity": "low|medium|high",
70
+ "sourceRefs": ["string"]
71
+ }
72
+ ],
73
+ "recommendedActions": ["string"],
74
+ "missingInputs": ["string"]
75
+ }
76
+ }
77
+ ```
78
+
79
+ 同时写入 `output/summary.md`。
80
+
81
+ ## 禁止事项
82
+
83
+ - 禁止代替审批人做通过或驳回决定。
84
+ - 禁止编造审批意见、附件和流转日志。
85
+ - 禁止输出未授权审批的申请人、金额或附件信息。
86
+ - 禁止把 AI 卡点解释写成正式审计结论。
87
+
88
+ ## 模板
89
+
90
+ ### 附件缺口
91
+
92
+ - 审批:`{title}`。
93
+ - 类型:`{workflowType}`。
94
+ - 缺失:`{missing}`。
95
+ - 建议:`{repairAction}`。
96
+ - 来源:`{sourceRef}`。
97
+
98
+ ### 卡点解释
99
+
100
+ - 当前节点:`{currentApprover}`。
101
+ - 已停留:`{duration}`。
102
+ - 可能原因:`{reason}`。
103
+ - 下一步:`{nextAction}`。
104
+
105
+ ## 示例
106
+
107
+ ```json
108
+ {
109
+ "result": {
110
+ "summary": "本次锁定 18 条审批记录,其中 4 条仍在流转。",
111
+ "findings": ["材料采购审批存在 1 条附件缺口。"],
112
+ "risks": [
113
+ {
114
+ "title": "采购审批缺少报价附件",
115
+ "severity": "medium",
116
+ "sourceRefs": ["workflow_instances.wf-1001.data.attachments"]
117
+ }
118
+ ],
119
+ "recommendedActions": ["由申请人补充报价单后再提醒当前审批人。"],
120
+ "missingInputs": []
121
+ }
122
+ }
123
+ ```
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: bidding-knowledge
3
+ description: 工程监测招投标专业知识库。当编制投标文件、分析招标文件或进行商务报价时加载此技能,获取评分要素、报价策略和资质要求指引。
4
+ ---
5
+
6
+ ## 适用场景
7
+
8
+ - 编制工程监测投标技术标和商务标
9
+ - 采集招标公告/招标文件情报,判断是否值得跟进
10
+ - 分析招标文件评分细则,制定投标策略
11
+ - 审核投标文件完整性和合规性
12
+ - 项目报价测算与成本分析
13
+
14
+ ## 投标文件标准结构
15
+
16
+ ### 技术标核心章节
17
+
18
+ | 序号 | 章节 | 评分权重(典型) | 编制要点 |
19
+ |-----|------|----------------|---------|
20
+ | 1 | 项目理解与分析 | 10~15分 | 体现对项目特点、重难点的深入理解,切忌泛泛而谈 |
21
+ | 2 | 监测方案 | 25~35分 | 测点布设图、仪器选型、监测频率、数据处理方案 |
22
+ | 3 | 质量保证措施 | 10~15分 | ISO体系、三级校核制度、数据复核流程 |
23
+ | 4 | 安全文明施工 | 5~10分 | 安全教育、应急预案、文明施工措施 |
24
+ | 5 | 工期保证 | 5~10分 | 人员及设备投入计划、关键节点时间表 |
25
+ | 6 | 项目业绩 | 10~15分 | 类似工程合同+完工证明,优先选择地铁/基坑类 |
26
+ | 7 | 人员配置 | 10~15分 | 项目负责人资质(注册测绘师)、技术骨干经验 |
27
+ | 8 | 应急预案 | 5~10分 | 超限应急响应流程、24小时值班制度 |
28
+
29
+ ### 商务标核心要素
30
+
31
+ | 要素 | 说明 |
32
+ |-----|------|
33
+ | 报价构成 | 人工费 + 仪器折旧/租赁费 + 交通差旅费 + 管理费 + 利润 + 税金 |
34
+ | 报价策略 | 基准价浮动法:以成本估算为基础,根据竞争态势调整下浮率 |
35
+ | 不平衡报价 | 前期投入项(基准点埋设、方案编制)可适当提高单价,后期常规监测按次计费 |
36
+ | 资质要求 | 工程测量甲级/乙级、测绘资质、ISO认证、安全生产许可证 |
37
+
38
+ ## 投标常见扣分项(避坑清单)
39
+
40
+ 1. **未响应招标文件的特殊要求**(如指定精度等级、特定仪器品牌)
41
+ 2. **监测方案缺少测点布设图**(评审专家最关注的直观材料)
42
+ 3. **人员资质证书过期或与投标项目无关**
43
+ 4. **业绩证明缺少合同关键页**(合同首页+签字页+金额页+完工证明)
44
+ 5. **报价明显低于成本价**(可能被判定为低于成本价投标而废标)
45
+ 6. **未单独编制应急预案章节**(部分招标文件明确要求独立章节)
46
+ 7. **投标文件页码、目录与正文不对应**
47
+
48
+ ## 工程监测常用费用参考
49
+
50
+ | 监测项目 | 单次费用参考(元) | 计费方式 |
51
+ |---------|-----------------|---------|
52
+ | 精密水准(沉降) | 15~30/点·次 | 按点按次 |
53
+ | 全站仪(水平位移) | 20~40/点·次 | 按点按次 |
54
+ | 测斜仪(深层位移) | 30~60/孔·次 | 按孔按次 |
55
+ | 地下水位 | 10~20/孔·次 | 按孔按次 |
56
+ | 裂缝监测 | 10~15/处·次 | 按处按次 |
57
+ | 基准点埋设 | 500~2000/个 | 一次性 |
58
+ | 监测方案编制 | 5000~20000/项 | 一次性 |
59
+ | 月报/总报编制 | 2000~8000/份 | 按份 |
60
+
61
+ ## 评标专家关注重点
62
+
63
+ 1. **方案针对性**:是否针对本项目特点定制,而非模板套用
64
+ 2. **测点布设合理性**:点位密度是否满足规范,关键部位是否加密
65
+ 3. **仪器选型匹配度**:精度等级是否满足监测要求
66
+ 4. **团队实力**:项目负责人是否有同类项目经验
67
+ 5. **应急能力**:是否有完善的应急预案和快速响应机制
68
+ 6. **报价合理性**:不追求最低价,而是性价比和工作量覆盖度
69
+
70
+ ## 投标情报预审表
71
+
72
+ 收到招标公告、链接或招标文件摘录时,先输出下表,再进入正式投标文件编制:
73
+
74
+ | 字段 | 判定方法 |
75
+ |---|---|
76
+ | 项目匹配度 | 对比公司地铁保护区、基坑、控制测量、自动化监测业绩 |
77
+ | 资质差距 | 核查测绘/勘察资质、人员证书、ISO、安全生产等要求 |
78
+ | 业绩匹配 | 标注可用业绩、缺失业绩和证明材料缺口 |
79
+ | 技术重难点 | 判断保护区距离、施工工况、自动化投入、专家评审风险 |
80
+ | 商务风险 | 付款节点、保证金、履约保证、低价风险、工期压缩 |
81
+ | 建议动作 | 跟进、谨慎跟进、补资料后判断、放弃 |
82
+
83
+ 无法从资料中核验的信息必须写“待核验”,不得补写公告没有给出的预算、评分办法或截止时间。
84
+
85
+ ## 结算对账核验
86
+
87
+ 催款前先做对账:
88
+
89
+ | 核验项 | 说明 |
90
+ |---|---|
91
+ | 合同金额 | 合同总价、暂定价、单价合同或补充协议 |
92
+ | 已确认产值 | 监测期数、报告数量、工作量签认单 |
93
+ | 已开票金额 | 发票号、开票日期、税率 |
94
+ | 已收款金额 | 银行流水或甲方付款记录 |
95
+ | 应收余额 | 按付款节点计算,不只按合同总价减已收 |
96
+ | 差额原因 | 未开票、已开票未付、付款条件未触发、扣款、口径不一致 |
97
+
98
+ 金额不一致时优先输出《结算对账说明》或《对账确认函》,不要直接生成强硬催款函。
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: bun-file-io
3
+ description: Use this when you are working on file operations like reading, writing, scanning, or deleting files. It summarizes the preferred file APIs and patterns used in this repo. It also notes when to use filesystem helpers for directories.
4
+ ---
5
+
6
+ ## Use this when
7
+
8
+ - Editing file I/O or scans in `packages/railwise`
9
+ - Handling directory operations or external tools
10
+
11
+ ## Bun file APIs (from Bun docs)
12
+
13
+ - `Bun.file(path)` is lazy; call `text`, `json`, `stream`, `arrayBuffer`, `bytes`, `exists` to read.
14
+ - Metadata: `file.size`, `file.type`, `file.name`.
15
+ - `Bun.write(dest, input)` writes strings, buffers, Blobs, Responses, or files.
16
+ - `Bun.file(...).delete()` deletes a file.
17
+ - `file.writer()` returns a FileSink for incremental writes.
18
+ - `Bun.Glob` + `Array.fromAsync(glob.scan({ cwd, absolute, onlyFiles, dot }))` for scans.
19
+ - Use `Bun.which` to find a binary, then `Bun.spawn` to run it.
20
+ - `Bun.readableStreamToText/Bytes/JSON` for stream output.
21
+
22
+ ## When to use node:fs
23
+
24
+ - Use `node:fs/promises` for directories (`mkdir`, `readdir`, recursive operations).
25
+
26
+ ## Repo patterns
27
+
28
+ - Prefer Bun APIs over Node `fs` for file access.
29
+ - Check `Bun.file(...).exists()` before reading.
30
+ - For binary/large files use `arrayBuffer()` and MIME checks via `file.type`.
31
+ - Use `Bun.Glob` + `Array.fromAsync` for scans.
32
+ - Decode tool stderr with `Bun.readableStreamToText`.
33
+ - For large writes, use `Bun.write(Bun.file(path), text)`.
34
+
35
+ NOTE: Bun.file(...).exists() will return `false` if the value is a directory.
36
+ Use Filesystem.exists(...) instead if path can be file or directory
37
+
38
+ ## Quick checklist
39
+
40
+ - Use Bun APIs first.
41
+ - Use `path.join`/`path.resolve` for paths.
42
+ - Prefer promise `.catch(...)` over `try/catch` when possible.
@@ -0,0 +1,91 @@
1
+ # 商务业财 AI Native Skill
2
+
3
+ ## 适用对象
4
+
5
+ - `contract`
6
+ - `receivable`
7
+ - `invoice`
8
+ - `quotation`
9
+ - `tender`
10
+ - 与合同、回款、发票、报价、投标相关的 `project`
11
+
12
+ 不适用于公司级经营指标总览;经营趋势和管理简报使用 `business-operations-analytics`。
13
+
14
+ ## OS Native 输入
15
+
16
+ 优先读取:
17
+
18
+ 1. `input/locked-facts.json`
19
+ 2. `input/locked-finance-facts.json`
20
+ 3. `input/context-pack.json`
21
+ 4. `input/business-finance-context.json`
22
+ 5. `input/capability-blueprint.json`
23
+
24
+ 合同、回款、发票、附件、报价、投标节点和操作日志必须来自 locked 文件。AI 只做条款抽取、风险解释、附件缺口、待办建议。
25
+
26
+ ## 数据源优先级
27
+
28
+ 1. RAILWISE-OS 合同、回款、发票、报价、投标记录。
29
+ 2. OS 附件元数据和飞书附件同步结果。
30
+ 3. 财务操作日志、合同转化记录、报价明细。
31
+ 4. 用户补充的合同原文或审查重点。
32
+
33
+ ## 追问策略
34
+
35
+ 缺业务对象时询问:合同、应收、发票、报价、投标。
36
+
37
+ 缺审查目的时询问:条款风险、回款风险、附件缺口、报价异常、投标资料缺项。
38
+
39
+ 缺附件时询问:等待飞书同步、上传附件、仅生成缺口清单。
40
+
41
+ ## 输出 JSON Schema
42
+
43
+ ```json
44
+ {
45
+ "summary": "string",
46
+ "riskItems": [
47
+ {
48
+ "risk": "string",
49
+ "level": "info|yellow|orange|red",
50
+ "sourceRefs": ["string"],
51
+ "ownerAction": "string"
52
+ }
53
+ ],
54
+ "missingAttachments": [
55
+ {
56
+ "entityType": "contract|invoice|tender|quotation",
57
+ "entityId": "string",
58
+ "missing": ["string"]
59
+ }
60
+ ],
61
+ "recommendedActions": ["string"],
62
+ "openQuestions": ["string"]
63
+ }
64
+ ```
65
+
66
+ ## 禁止事项
67
+
68
+ - 不得自由编造合同条款、付款节点、发票金额或附件状态。
69
+ - 不得绕过权限输出未授权客户、部门或合同明细。
70
+ - 不得给出法律结论,只能提示商务风险和需人工确认事项。
71
+ - 不得把待签合同当成正式合同金额。
72
+
73
+ ## 报告模板
74
+
75
+ ```markdown
76
+ ## 商务业财审查摘要
77
+
78
+ ## 锁定数据范围
79
+
80
+ ## 风险和缺口
81
+
82
+ ## 建议动作
83
+
84
+ ## 待确认问题
85
+ ```
86
+
87
+ ## 示例
88
+
89
+ 输入:`finance.invoice.attachment.check`,locked facts 中某发票无附件。
90
+
91
+ 输出:列出缺失附件和对应发票 ID,不生成不存在的附件链接。
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: business-operations-analytics
3
+ description: "RAILWISE-OS 经营数据问答、经营简报、指标诊断和项目经营健康检查专项 skill。"
4
+ ---
5
+
6
+ # Business Operations Analytics Skill
7
+
8
+ 用于 RAILWISE-OS AI Native 经营数据能力。默认由 RAILWISE-CLI 在 OS 已准备好的 workspace 中调用。
9
+
10
+ ## 适用对象和不适用对象
11
+
12
+ 适用于:
13
+
14
+ - `company`
15
+ - `department`
16
+ - `project`
17
+ - `contract`
18
+ - `receivable`
19
+ - `invoice`
20
+ - `dashboard_metric`
21
+
22
+ 不适用于合同条款逐条法律审查、发票附件逐项核查、投标资料缺口扫描;这些使用 `business-finance`。
23
+
24
+ ## OS Native 输入
25
+
26
+ 当工作区存在以下文件时,必须优先使用 OS 已锁定数据:
27
+
28
+ - `input/context-pack.json`
29
+ - `input/locked-facts.json`
30
+ - `input/capability-blueprint.json`
31
+ - `input/business-metrics-context.json`
32
+ - `input/locked-metric-result.json`
33
+ - `input/business-brief-blueprint.json`
34
+
35
+ ## 数据源优先级
36
+
37
+ 1. RAILWISE-OS 已锁定经营指标和 `locked-metric-result.json`。
38
+ 2. 合同、回款、发票、项目台账和 KPI 目标。
39
+ 3. 用户选择的时间范围、部门、项目、指标和对比方式。
40
+ 4. 缺数据时输出 `missingData`,不得补写不存在的金额。
41
+
42
+ ## 核心原则
43
+
44
+ 1. **OS 数据为准。** 合同额、回款、发票、逾期、项目数、时间范围和权限裁剪均以 `locked-metric-result.json` 为准。
45
+ 2. **AI 不改数。** 不得自行重算、补写或猜测 locked facts 中不存在的金额、项目数量、部门明细。
46
+ 3. **解释和建议是 AI 的职责。** 可以输出经营摘要、关键发现、风险解释、建议动作、追问问题和缺失数据。
47
+ 4. **权限优先。** 不得绕过 `permissionScope` 输出未授权部门、项目、员工或合同明细。
48
+ 5. **不做财务最终裁定。** 风险判断是管理建议,正式数据仍以 OS、财务复核和人工验收为准。
49
+
50
+ ## 指标口径
51
+
52
+ - `contract.amount.signed`:统计周期内签约合同额。
53
+ - `contract.amount.active`:在执行合同额。
54
+ - `collection.amount.received`:统计周期内已回款金额。
55
+ - `collection.amount.due`:合同未收金额。
56
+ - `collection.amount.overdue`:合同到期且未结清的逾期应收。
57
+ - `invoice.amount.issued`:统计周期内已开票金额。
58
+ - `invoice.amount.pending`:估算待开票金额。
59
+ - `project.count.active`:在执行项目数。
60
+ - `project.delivery.risk_count`:交付风险项目数。
61
+ - `cashflow.risk_project_count`:现金流风险项目数。
62
+
63
+ ## 追问策略
64
+
65
+ 如果用户要求不清晰,优先给 2-4 个选择,而不是让用户写长 prompt:
66
+
67
+ - 时间范围:本月 / 本季度 / 今年截至今天 / 自定义。
68
+ - 经营范围:全公司 / 我的部门 / 指定部门 / 指定项目。
69
+ - 指标范围:合同额 / 回款 / 开票 / 经营健康 / 全部。
70
+ - 对比方式:同比去年 / 环比上月 / 对比目标 / 不对比。
71
+
72
+ ## 输出 JSON Schema 与要求
73
+
74
+ 必须写入 `output/business-insight.json`:
75
+
76
+ ```json
77
+ {
78
+ "insight": {
79
+ "executiveSummary": "string",
80
+ "keyFindings": ["string"],
81
+ "riskInterpretation": ["string"],
82
+ "recommendedActions": ["string"],
83
+ "followUpQuestions": ["string"],
84
+ "missingData": ["string"]
85
+ }
86
+ }
87
+ ```
88
+
89
+ 同时可以用中文概述:
90
+
91
+ - 先说结论。
92
+ - 再说关键数字,但数字必须来自 locked facts。
93
+ - 最后给可执行建议。
94
+
95
+ ## 禁止事项
96
+
97
+ - 不得输出 locked facts 中没有的金额或项目数量。
98
+ - 不得说“利润”“成本”“毛利”等 OS 未锁定的指标,除非 locked facts 明确提供。
99
+ - 不得绕过权限解释其他部门明细。
100
+ - 不得把建议写成财务确认结论。
101
+
102
+ ## 报告 / 摘要模板
103
+
104
+ ```markdown
105
+ ## 经营数据摘要
106
+
107
+ ## 锁定指标和统计口径
108
+
109
+ ## 风险解释
110
+
111
+ ## 建议动作
112
+
113
+ ## 待补数据
114
+ ```
115
+
116
+ ## 示例输入输出
117
+
118
+ 输入:`company.metrics.query`,周期为今年截至今天,locked facts 有签约合同额、已回款、已开票、逾期应收。
119
+
120
+ 输出:管理摘要中的所有金额均来自 `locked-metric-result.json`,并把缺失同比基准写入 `missingData`。