pi-maestro-flow 0.2.0
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 +124 -0
- package/agents/aggregator.md +27 -0
- package/agents/cli-explore-agent.md +188 -0
- package/agents/cross-role-reviewer.md +171 -0
- package/agents/delegate.md +19 -0
- package/agents/explorer.md +23 -0
- package/agents/impeccable-agent.md +99 -0
- package/agents/ralph-executor.md +81 -0
- package/agents/reference.md +24 -0
- package/agents/role-design-author.md +220 -0
- package/agents/team-supervisor.md +143 -0
- package/agents/team-worker.md +237 -0
- package/agents/ui-design-agent.md +270 -0
- package/agents/workflow-analyzer.md +116 -0
- package/agents/workflow-codebase-mapper.md +77 -0
- package/agents/workflow-collab-planner.md +147 -0
- package/agents/workflow-debugger.md +104 -0
- package/agents/workflow-executor.md +133 -0
- package/agents/workflow-external-researcher.md +86 -0
- package/agents/workflow-integration-checker.md +83 -0
- package/agents/workflow-nyquist-auditor.md +85 -0
- package/agents/workflow-phase-researcher.md +85 -0
- package/agents/workflow-plan-checker.md +100 -0
- package/agents/workflow-planner.md +200 -0
- package/agents/workflow-project-researcher.md +74 -0
- package/agents/workflow-research-synthesizer.md +70 -0
- package/agents/workflow-reviewer.md +82 -0
- package/agents/workflow-roadmapper.md +81 -0
- package/agents/workflow-verifier.md +120 -0
- package/package.json +58 -0
- package/skills/codify-to-knowhow/SKILL.md +167 -0
- package/skills/delegation-check/SKILL.md +297 -0
- package/skills/domain-add/SKILL.md +75 -0
- package/skills/insight-challenge/SKILL.md +226 -0
- package/skills/learn-decompose/SKILL.md +124 -0
- package/skills/learn-follow/SKILL.md +163 -0
- package/skills/learn-investigate/SKILL.md +160 -0
- package/skills/learn-second-opinion/SKILL.md +128 -0
- package/skills/maestro/SKILL.md +239 -0
- package/skills/maestro-amend/SKILL.md +169 -0
- package/skills/maestro-analyze/SKILL.md +173 -0
- package/skills/maestro-blueprint/SKILL.md +159 -0
- package/skills/maestro-brainstorm/SKILL.md +193 -0
- package/skills/maestro-collab/SKILL.md +181 -0
- package/skills/maestro-companion/SKILL.md +536 -0
- package/skills/maestro-composer/SKILL.md +192 -0
- package/skills/maestro-execute/SKILL.md +193 -0
- package/skills/maestro-fork/SKILL.md +104 -0
- package/skills/maestro-grill/SKILL.md +151 -0
- package/skills/maestro-guard/SKILL.md +124 -0
- package/skills/maestro-help/SKILL.md +328 -0
- package/skills/maestro-impeccable/SKILL.md +302 -0
- package/skills/maestro-init/SKILL.md +151 -0
- package/skills/maestro-merge/SKILL.md +90 -0
- package/skills/maestro-milestone-audit/SKILL.md +117 -0
- package/skills/maestro-milestone-complete/SKILL.md +133 -0
- package/skills/maestro-milestone-release/SKILL.md +131 -0
- package/skills/maestro-next/SKILL.md +269 -0
- package/skills/maestro-overlay/SKILL.md +203 -0
- package/skills/maestro-plan/SKILL.md +194 -0
- package/skills/maestro-player/SKILL.md +184 -0
- package/skills/maestro-quick/SKILL.md +117 -0
- package/skills/maestro-ralph/SKILL.md +905 -0
- package/skills/maestro-ralph-cli/SKILL.md +976 -0
- package/skills/maestro-ralph-cli-execute/SKILL.md +229 -0
- package/skills/maestro-ralph-execute/SKILL.md +409 -0
- package/skills/maestro-ralph-v2/SKILL.md +1198 -0
- package/skills/maestro-roadmap/SKILL.md +157 -0
- package/skills/maestro-swarm-workflow/SKILL.md +272 -0
- package/skills/maestro-tools-execute/SKILL.md +143 -0
- package/skills/maestro-tools-register/SKILL.md +192 -0
- package/skills/maestro-ui-codify/SKILL.md +127 -0
- package/skills/maestro-universal-workflow/SKILL.md +622 -0
- package/skills/maestro-update/SKILL.md +156 -0
- package/skills/manage-codebase-rebuild/SKILL.md +111 -0
- package/skills/manage-drift-realign/SKILL.md +159 -0
- package/skills/manage-harvest/SKILL.md +121 -0
- package/skills/manage-issue/SKILL.md +88 -0
- package/skills/manage-issue-discover/SKILL.md +104 -0
- package/skills/manage-kg-extractors/SKILL.md +147 -0
- package/skills/manage-knowhow/SKILL.md +102 -0
- package/skills/manage-knowhow-capture/SKILL.md +109 -0
- package/skills/manage-knowledge-audit/SKILL.md +147 -0
- package/skills/manage-status/SKILL.md +80 -0
- package/skills/manage-wiki/SKILL.md +104 -0
- package/skills/odyssey-debug/SKILL.md +344 -0
- package/skills/odyssey-improve/SKILL.md +423 -0
- package/skills/odyssey-planex/SKILL.md +542 -0
- package/skills/odyssey-review-test-fix/SKILL.md +392 -0
- package/skills/odyssey-ui/SKILL.md +388 -0
- package/skills/prompt-generator/SKILL.md +470 -0
- package/skills/quality-auto-test/SKILL.md +168 -0
- package/skills/quality-debug/SKILL.md +176 -0
- package/skills/quality-refactor/SKILL.md +108 -0
- package/skills/quality-retrospective/SKILL.md +134 -0
- package/skills/quality-review/SKILL.md +169 -0
- package/skills/quality-sync/SKILL.md +90 -0
- package/skills/quality-test/SKILL.md +183 -0
- package/skills/scholar-anti-ai-writing/SKILL.md +173 -0
- package/skills/scholar-anti-ai-writing/references/patterns-chinese.md +242 -0
- package/skills/scholar-anti-ai-writing/references/patterns-english.md +242 -0
- package/skills/scholar-citation-verify/SKILL.md +166 -0
- package/skills/scholar-citation-verify/references/api-usage.md +372 -0
- package/skills/scholar-citation-verify/references/common-errors.md +384 -0
- package/skills/scholar-citation-verify/references/verification-rules.md +399 -0
- package/skills/scholar-experiment/SKILL.md +321 -0
- package/skills/scholar-ideation/SKILL.md +288 -0
- package/skills/scholar-latex-organizer/SKILL.md +186 -0
- package/skills/scholar-publish/SKILL.md +220 -0
- package/skills/scholar-rebuttal-pro/README.md +313 -0
- package/skills/scholar-rebuttal-pro/SKILL.md +511 -0
- package/skills/scholar-review/SKILL.md +227 -0
- package/skills/scholar-thesis-docx/README.md +111 -0
- package/skills/scholar-thesis-docx/README_EN.md +108 -0
- package/skills/scholar-thesis-docx/SKILL.md +212 -0
- package/skills/scholar-thesis-docx/references/failure-patterns-and-quality-gates.md +178 -0
- package/skills/scholar-thesis-docx/references/figure-and-code-rules.md +33 -0
- package/skills/scholar-thesis-docx/references/paper-format-workflow.md +68 -0
- package/skills/scholar-thesis-docx/references/script-usage.md +157 -0
- package/skills/scholar-thesis-docx/scripts/audit_docx_ooxml.py +429 -0
- package/skills/scholar-thesis-docx/scripts/check_word_com.ps1 +50 -0
- package/skills/scholar-thesis-docx/scripts/export_word_pdf.ps1 +62 -0
- package/skills/scholar-thesis-docx/scripts/normalize_word_styles.ps1 +498 -0
- package/skills/scholar-thesis-docx/scripts/render_mermaid_figure.ps1 +148 -0
- package/skills/scholar-writing/SKILL.md +296 -0
- package/skills/security-audit/SKILL.md +244 -0
- package/skills/skill-generator/SKILL.md +472 -0
- package/skills/skill-iter-tune/SKILL.md +382 -0
- package/skills/skill-simplify/SKILL.md +63 -0
- package/skills/skill-tuning/SKILL.md +174 -0
- package/skills/spec-add/SKILL.md +105 -0
- package/skills/spec-load/SKILL.md +98 -0
- package/skills/spec-remove/SKILL.md +74 -0
- package/skills/spec-setup/SKILL.md +75 -0
- package/skills/team-adversarial-swarm/SKILL.md +233 -0
- package/skills/team-adversarial-swarm/scripts/__pycache__/pheromone.cpython-313.pyc +0 -0
- package/skills/team-adversarial-swarm/scripts/__pycache__/scoring.cpython-313.pyc +0 -0
- package/skills/team-adversarial-swarm/scripts/aco.py +473 -0
- package/skills/team-adversarial-swarm/scripts/pheromone.py +144 -0
- package/skills/team-adversarial-swarm/scripts/scoring.py +92 -0
- package/skills/team-adversarial-swarm/scripts/test_aco.py +475 -0
- package/skills/team-arch-opt/SKILL.md +158 -0
- package/skills/team-brainstorm/SKILL.md +171 -0
- package/skills/team-coordinate/SKILL.md +266 -0
- package/skills/team-designer/SKILL.md +160 -0
- package/skills/team-executor/SKILL.md +189 -0
- package/skills/team-frontend/SKILL.md +136 -0
- package/skills/team-frontend-debug/SKILL.md +198 -0
- package/skills/team-interactive-craft/SKILL.md +141 -0
- package/skills/team-issue/SKILL.md +171 -0
- package/skills/team-lifecycle-v4/SKILL.md +209 -0
- package/skills/team-motion-design/SKILL.md +142 -0
- package/skills/team-perf-opt/SKILL.md +175 -0
- package/skills/team-planex/SKILL.md +137 -0
- package/skills/team-quality-assurance/SKILL.md +147 -0
- package/skills/team-review/SKILL.md +147 -0
- package/skills/team-roadmap-dev/SKILL.md +169 -0
- package/skills/team-swarm/SKILL.md +178 -0
- package/skills/team-swarm/scripts/aco.py +473 -0
- package/skills/team-swarm/scripts/pheromone.py +144 -0
- package/skills/team-swarm/scripts/scoring.py +92 -0
- package/skills/team-swarm/scripts/test_aco.py +475 -0
- package/skills/team-tech-debt/SKILL.md +128 -0
- package/skills/team-testing/SKILL.md +143 -0
- package/skills/team-ui-polish/SKILL.md +141 -0
- package/skills/team-uidesign/SKILL.md +144 -0
- package/skills/team-ultra-analyze/SKILL.md +173 -0
- package/skills/team-ux-improve/SKILL.md +151 -0
- package/skills/team-visual-a11y/SKILL.md +156 -0
- package/skills/workflow-skill-designer/SKILL.md +496 -0
- package/src/extension/index.ts +222 -0
- package/src/extension/schemas.ts +131 -0
- package/src/providers/cli-tools-loader.ts +74 -0
- package/src/providers/provider-registry.ts +130 -0
- package/src/tools/delegate.ts +85 -0
- package/src/tools/explore.ts +134 -0
- package/src/tools/moa.ts +213 -0
- package/src/tools/status.ts +99 -0
- package/src/tools/wait.ts +166 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-test
|
|
3
|
+
description: "Use when implementation needs user acceptance testing with interactive verification and gap closure Arguments: [phase] [--smoke] [--auto-fix] [--frontend-verify]"
|
|
4
|
+
allowed-tools: Read Write Edit Bash Glob Grep Agent AskUserQuestion
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<purpose>
|
|
8
|
+
UAT-style conversational testing for a completed phase. Interactive scenario walk-through with severity inference. Issues trigger parallel debug agents and optional gap-fix loop (--auto-fix).
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<required_reading>
|
|
12
|
+
@~/.maestro/workflows/test.md
|
|
13
|
+
</required_reading>
|
|
14
|
+
|
|
15
|
+
<context>
|
|
16
|
+
Phase or task: $ARGUMENTS (optional)
|
|
17
|
+
|
|
18
|
+
Flags, artifact context resolution, and output directory format defined in workflow test.md.
|
|
19
|
+
|
|
20
|
+
**Output boundary**: ALL file writes MUST target `.workflow/scratch/{YYYYMMDD}-test-P{N}-{slug}/`, `.workflow/state.json`, or `.workflow/issues.jsonl` only. NEVER modify source code or execution artifacts outside these paths. `--frontend-verify` additionally writes `e2e-results.json` to the same scratch directory.
|
|
21
|
+
</context>
|
|
22
|
+
|
|
23
|
+
<invariants>
|
|
24
|
+
1. **UAT is observational** — test execution observes behavior and records results. NEVER modify source code during testing. Source fixes belong to debug→plan→execute cycle.
|
|
25
|
+
2. **Severity is inferred, not asked** — severity MUST be inferred from user's natural language description of issues. NEVER explicitly ask the user to assign severity levels.
|
|
26
|
+
3. **One scenario at a time** — tests MUST be presented individually for user verification. NEVER batch-present multiple scenarios or assume outcomes.
|
|
27
|
+
4. **Evidence before verdict** — UAT confidence MUST be scored with the 4-dimension factor model from actual test results. NEVER emit a verdict without running the readiness gate.
|
|
28
|
+
5. **Existing UAT is resumable** — when uat.md exists for the target phase, offer resume. NEVER silently overwrite prior test progress.
|
|
29
|
+
6. **Frontend-verify is deterministic** — `--frontend-verify` mode uses browser assertions with concrete pass/fail per criterion. NEVER treat "no response" or timeout as pass.
|
|
30
|
+
7. **Auto-fix has bounds** — `--auto-fix` gap-fix loop MUST NOT exceed 2 iterations. Persistent failures escalate to debug, not infinite retry.
|
|
31
|
+
</invariants>
|
|
32
|
+
|
|
33
|
+
<execution>
|
|
34
|
+
**Mode select:** `--frontend-verify` → 走下方 **Frontend Verify Mode**(确定性浏览器 smoke,**不是**对话式 UAT);否则 Follow '~/.maestro/workflows/test.md' completely.
|
|
35
|
+
|
|
36
|
+
### Frontend Verify Mode (`--frontend-verify`)
|
|
37
|
+
|
|
38
|
+
1. **Resolve targets**: 读 phase 的 `plan.json` / `.task/TASK-*.json`,提取所有 `[UI-observable]` convergence.criteria(plan 阶段产出);缺失则枚举后端写端点(POST/PUT/PATCH/DELETE)作为待验证清单。
|
|
39
|
+
2. **Start app**: `next start`(或从 dashboard/package.json 解析的既有启动脚本);启动失败 → E003。
|
|
40
|
+
3. **Drive browser**: 用 chrome-devtools MCP(`mcp__claude_dms3-chrome-devtools__*`:navigate / click / fill / take_snapshot / list_network_requests)逐条执行每个 `[UI-observable]` 流程,断言:UI 入口存在且可触发 → 对应写请求返回 2xx → DOM 出现预期结果。
|
|
41
|
+
4. **Write evidence**: 产出 `e2e-results.json`(结构见下),逐条记 pass/fail + 证据(网络状态码、快照引用)。**确定性断言,禁止"无人应答=全过"**。
|
|
42
|
+
5. **Verdict**: 任一 `[UI-observable]` fail 或写端点无 UI 入口 → STATUS=NEEDS_RETRY(ralph 经 post-frontend-verify 触发 Fix-Loop);全过 → DONE。
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
// e2e-results.json
|
|
46
|
+
{ "phase": "{phase}", "app_url": "http://localhost:3000",
|
|
47
|
+
"checks": [ { "criterion": "[UI-observable] ...", "ui_entry": "<selector/route>",
|
|
48
|
+
"request": "POST /api/notes", "status": 201, "dom_assert": "list shows new item",
|
|
49
|
+
"passed": true } ],
|
|
50
|
+
"summary": { "total": 0, "passed": 0, "failed": 0 }, "verdict": "pass|fail" }
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Ralph-invoked 完成:`maestro ralph complete <idx> --status {STATUS} --evidence e2e-results.json`。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
Follow '~/.maestro/workflows/test.md' completely.
|
|
58
|
+
|
|
59
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
60
|
+
|
|
61
|
+
**GATE 1: Setup → Test Design**
|
|
62
|
+
- REQUIRED: Target resolved (phase or scratch task). E001 if missing.
|
|
63
|
+
- REQUIRED: Smoke tests pass (if --smoke). E003 if fail.
|
|
64
|
+
- BLOCKED if missing: cannot design tests without resolved target.
|
|
65
|
+
|
|
66
|
+
**GATE 2: Test Design → Execution**
|
|
67
|
+
- REQUIRED: test-plan.json generated with categorized tests mapped to requirements.
|
|
68
|
+
- REQUIRED: uat.md created or resumed.
|
|
69
|
+
- BLOCKED if plan missing: do not start interactive testing without plan.
|
|
70
|
+
|
|
71
|
+
**GATE 3: Execution → Completion**
|
|
72
|
+
- REQUIRED: All tests presented and responses processed.
|
|
73
|
+
- REQUIRED: UAT confidence scored with 4-dimension factor model.
|
|
74
|
+
- REQUIRED: Pressure pass completed if > 80% pass rate.
|
|
75
|
+
- BLOCKED if incomplete: finish all scenarios before reporting.
|
|
76
|
+
|
|
77
|
+
**Command-specific extensions (not in workflow):**
|
|
78
|
+
|
|
79
|
+
**Knowledge context loading** (before test design):
|
|
80
|
+
- Wiki search: `maestro search "<phase/feature keywords>" --json` → prior test strategies, recipes, decisions
|
|
81
|
+
- Role knowledge: `maestro search --category test` → select relevant → `maestro load --type knowhow --id <id>`
|
|
82
|
+
- Specs + tools: `maestro load --type spec --category test` → test conventions + discoverable knowhow tools
|
|
83
|
+
|
|
84
|
+
**Test tool discovery** (knowhow tools as scenario source):
|
|
85
|
+
- Load registered test tools: `maestro load --type spec --category test --keyword <feature>`
|
|
86
|
+
- If tools found, extract their steps as additional test scenarios marked `source: "tool"`
|
|
87
|
+
- Each numbered step in a tool becomes a UAT test with its assertion as `expected` behavior
|
|
88
|
+
|
|
89
|
+
**Review findings integration** (from related review artifacts):
|
|
90
|
+
- Extract critical/high findings as additional test scenarios, marked `source: "review_finding"`
|
|
91
|
+
- When review verdict is "BLOCK" and review-finding tests fail, auto-enter gap-fix loop
|
|
92
|
+
|
|
93
|
+
**Debug root cause integration** (from related debug artifacts):
|
|
94
|
+
- Generate regression test scenarios from confirmed root causes, marked `source: "debug_root_cause"`
|
|
95
|
+
|
|
96
|
+
**Register artifact on completion:**
|
|
97
|
+
|
|
98
|
+
Confirm before writing:
|
|
99
|
+
```
|
|
100
|
+
AskUserQuestion("Register test artifact TST-{NNN} in state.json? (yes/no)")
|
|
101
|
+
→ yes: proceed with write
|
|
102
|
+
→ no: skip registration, continue to completion
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Append to state.json.artifacts[]:
|
|
107
|
+
{
|
|
108
|
+
id: nextArtifactId(artifacts, "test"), // TST-001
|
|
109
|
+
type: "test",
|
|
110
|
+
milestone: current_milestone,
|
|
111
|
+
phase: target_phase,
|
|
112
|
+
scope: "phase",
|
|
113
|
+
path: "scratch/{YYYYMMDD}-test-P{N}-{slug}",
|
|
114
|
+
status: issues == 0 ? "completed" : "failed",
|
|
115
|
+
depends_on: exec_art.id,
|
|
116
|
+
harvested: false,
|
|
117
|
+
created_at: start_time,
|
|
118
|
+
completed_at: now()
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
</execution>
|
|
123
|
+
|
|
124
|
+
<completion>
|
|
125
|
+
### Standalone report
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
--- COMPLETION STATUS ---
|
|
129
|
+
STATUS: DONE|DONE_WITH_CONCERNS|NEEDS_RETRY
|
|
130
|
+
CONCERNS: {description if applicable}
|
|
131
|
+
--- END STATUS ---
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Ralph-invoked completion
|
|
135
|
+
|
|
136
|
+
End the step by calling the CLI (no text block output):
|
|
137
|
+
```
|
|
138
|
+
maestro ralph complete <idx> --status {STATUS} [--evidence {path}]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Next-step routing
|
|
142
|
+
|
|
143
|
+
| Condition | Suggestion |
|
|
144
|
+
|-----------|-----------|
|
|
145
|
+
| All tests pass | `/maestro-milestone-audit` |
|
|
146
|
+
| --auto-fix succeeded | `/maestro-execute {phase}` |
|
|
147
|
+
| --auto-fix gaps remain | `/quality-debug --from-uat {phase}` |
|
|
148
|
+
| Manual fix needed | `/quality-debug --from-uat {phase}` |
|
|
149
|
+
| Coverage below threshold | `/quality-auto-test {phase}` |
|
|
150
|
+
</completion>
|
|
151
|
+
|
|
152
|
+
<error_codes>
|
|
153
|
+
| Code | Severity | Condition | Recovery |
|
|
154
|
+
|------|----------|-----------|----------|
|
|
155
|
+
| E001 | error | Phase or task target required (no active sessions) | Prompt user for phase number |
|
|
156
|
+
| E002 | error | Phase not verified yet (no verification.json) | Suggest `/maestro-execute` first (verification is built-in) |
|
|
157
|
+
| E003 | error | Smoke test failed (app won't start) | Suggest `/quality-debug` |
|
|
158
|
+
| W001 | warning | One or more test scenarios failed | Auto-diagnose, suggest fix options |
|
|
159
|
+
| W002 | warning | Coverage below threshold | Suggest `/quality-auto-test` |
|
|
160
|
+
</error_codes>
|
|
161
|
+
|
|
162
|
+
<success_criteria>
|
|
163
|
+
- [ ] Target resolved (phase or scratch task)
|
|
164
|
+
- [ ] Active sessions checked, resume offered if applicable
|
|
165
|
+
- [ ] Smoke tests run if --smoke flag set
|
|
166
|
+
- [ ] test-plan.json generated with categorized tests mapped to requirements
|
|
167
|
+
- [ ] uat.md created/resumed with all tests
|
|
168
|
+
- [ ] Tests presented one at a time with expected behavior
|
|
169
|
+
- [ ] User responses processed as pass/issue/skip
|
|
170
|
+
- [ ] Severity inferred from natural language (never asked)
|
|
171
|
+
- [ ] Batched writes: on issue, every 5 passes, or completion
|
|
172
|
+
- [ ] test-results.json and coverage-report.json written
|
|
173
|
+
- [ ] UAT confidence scored with 4-dimension factor model
|
|
174
|
+
- [ ] Readiness gate checked before final report
|
|
175
|
+
- [ ] Pressure pass completed if > 80% pass rate
|
|
176
|
+
- [ ] Confidence summary appended to uat.md
|
|
177
|
+
- [ ] index.json uat fields updated
|
|
178
|
+
- [ ] If issues: confirm with user before spawning parallel debug agents per gap cluster
|
|
179
|
+
- [ ] Gaps updated with root_cause, fix_direction, affected_files
|
|
180
|
+
- [ ] Gap-fix loop triggered if --auto-fix (max 2 iterations)
|
|
181
|
+
- [ ] Next step routed (phase-transition if pass, verify if auto-fix success, debug --from-uat if issues, test-gen if low coverage)
|
|
182
|
+
- [ ] `--frontend-verify`: 每条 [UI-observable] criterion 经真实浏览器断言,产出 e2e-results.json;任一 fail → NEEDS_RETRY(不放行)
|
|
183
|
+
</success_criteria>
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scholar-anti-ai-writing
|
|
3
|
+
description: "Remove AI writing patterns from academic prose. Detects and fixes inflated symbolism, promotional language, superficial analyses, vague attributions, AI vocabulary, and formulaic structures. Supports English and Chinese. Triggers on \"remove AI patterns\", \"humanize text\", \"anti-AI polish\", \"去除AI写作痕迹\", \"人性化处理\"."
|
|
4
|
+
allowed-tools: Read Write Edit Bash Glob Grep AskUserQuestion TodoWrite
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Scholar Anti-AI Writing
|
|
8
|
+
|
|
9
|
+
Detect and eliminate AI writing patterns from academic prose. Based on Wikipedia's "Signs of AI writing" guide. Supports both English and Chinese text.
|
|
10
|
+
|
|
11
|
+
**Core insight**: LLMs predict the most statistically likely outcome — creating detectable patterns. This skill identifies and rewrites those patterns while preserving meaning and adding authentic voice.
|
|
12
|
+
|
|
13
|
+
## Pre-load (before execution)
|
|
14
|
+
|
|
15
|
+
1. **Codebase docs**: If `.workflow/codebase/ARCHITECTURE.md` exists, read for project context
|
|
16
|
+
2. **Specs**: `maestro load --type spec --category coding` — load coding conventions
|
|
17
|
+
3. **Wiki knowledge**: `maestro search "academic writing research paper" --json` — top 5 entries as prior context
|
|
18
|
+
4. All optional — proceed without if unavailable
|
|
19
|
+
|
|
20
|
+
## Architecture Overview
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
User: "Remove AI patterns from my paper"
|
|
24
|
+
|
|
|
25
|
+
v
|
|
26
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ SKILL.md (Orchestrator) │
|
|
28
|
+
│ Collect preferences → Dispatch phases → Track progress │
|
|
29
|
+
└──────────┬───────────────────────────────────────────────────┘
|
|
30
|
+
|
|
|
31
|
+
┌───────┼───────────┬──────────────┐
|
|
32
|
+
v v v v
|
|
33
|
+
┌──────┐┌──────────┐┌──────────────┐
|
|
34
|
+
│ P1 ││ P2 ││ P3 │
|
|
35
|
+
│Detect││ Rewrite ││ Validate │
|
|
36
|
+
│ & ││ & Polish ││ & Score │
|
|
37
|
+
│Score ││ ││ │
|
|
38
|
+
└──┬───┘└────┬─────┘└──────┬───────┘
|
|
39
|
+
│ │ │
|
|
40
|
+
v v v
|
|
41
|
+
pattern polished final score
|
|
42
|
+
report prose + diff report
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Key Design Principles
|
|
46
|
+
|
|
47
|
+
1. **Pattern detection + soul injection**: Removing AI patterns is only half the job — add authentic voice.
|
|
48
|
+
2. **Preserve meaning**: Core content and technical claims must remain intact.
|
|
49
|
+
3. **Language-aware**: English and Chinese have different AI pattern signatures.
|
|
50
|
+
4. **Scoring-driven**: Quantitative 5-dimension scoring (50-point scale) guides revision.
|
|
51
|
+
5. **Academic tone**: Maintain scholarly register — humanize without becoming informal.
|
|
52
|
+
|
|
53
|
+
## Interactive Preference Collection
|
|
54
|
+
|
|
55
|
+
Before dispatching to any phase, collect these preferences:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Questions to ask the user:
|
|
59
|
+
|
|
60
|
+
1. Input Source
|
|
61
|
+
"What text should I process? (file path, directory, or paste text)"
|
|
62
|
+
→ inputSource
|
|
63
|
+
|
|
64
|
+
2. Language
|
|
65
|
+
Options: English | Chinese | Bilingual (auto-detect per section)
|
|
66
|
+
→ language
|
|
67
|
+
|
|
68
|
+
3. Writing Context
|
|
69
|
+
Options: Academic Paper | Technical Report | Blog/Article | General Prose
|
|
70
|
+
→ writingContext
|
|
71
|
+
|
|
72
|
+
4. Aggressiveness
|
|
73
|
+
Options: Conservative (minimal changes) | Balanced (Recommended) | Aggressive (heavy rewrite)
|
|
74
|
+
→ aggressiveness
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Store responses as `antiAiPreferences` context for all phases.
|
|
78
|
+
|
|
79
|
+
## Auto Mode Defaults
|
|
80
|
+
|
|
81
|
+
When `workflowPreferences.autoYes === true`:
|
|
82
|
+
- Process all .tex files in cwd
|
|
83
|
+
- Auto-detect language
|
|
84
|
+
- Academic Paper context, Balanced aggressiveness
|
|
85
|
+
- Skip confirmation prompts
|
|
86
|
+
|
|
87
|
+
## Execution Flow
|
|
88
|
+
|
|
89
|
+
> **COMPACT DIRECTIVE**: Context compression MUST check TodoWrite phase status.
|
|
90
|
+
> The phase currently marked `in_progress` is the active execution phase — preserve its FULL content.
|
|
91
|
+
> Only compress phases marked `completed` or `pending`.
|
|
92
|
+
|
|
93
|
+
### TodoWrite Setup
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Anti-AI Writing:
|
|
97
|
+
- [ ] Phase 1: Detect & Score — scan for AI patterns, generate initial score
|
|
98
|
+
- [ ] Phase 2: Rewrite & Polish — rewrite flagged sections, add voice
|
|
99
|
+
- [ ] Phase 3: Validate & Score — re-score, verify quality threshold
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Phase Sequence
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Phase 1: Detect & Score
|
|
106
|
+
└─ Ref: phases/01-detect-score.md
|
|
107
|
+
├─ Input: inputSource, language
|
|
108
|
+
└─ Output: patternReport (flagged passages + initial scores)
|
|
109
|
+
|
|
110
|
+
Phase 2: Rewrite & Polish
|
|
111
|
+
└─ Ref: phases/02-rewrite-polish.md
|
|
112
|
+
├─ Input: patternReport, writingContext, aggressiveness
|
|
113
|
+
└─ Output: polishedText (rewritten content)
|
|
114
|
+
|
|
115
|
+
Phase 3: Validate & Score
|
|
116
|
+
└─ Ref: phases/03-validate-score.md
|
|
117
|
+
├─ Input: polishedText, original text
|
|
118
|
+
└─ Output: finalReport (before/after scores, diff)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Phase Reference Documents** (read on-demand when phase executes):
|
|
122
|
+
|
|
123
|
+
| Phase | Document | Purpose | Compact |
|
|
124
|
+
|-------|----------|---------|---------|
|
|
125
|
+
| 1 | [phases/01-detect-score.md](phases/01-detect-score.md) | Scan patterns, score text | TodoWrite driven |
|
|
126
|
+
| 2 | [phases/02-rewrite-polish.md](phases/02-rewrite-polish.md) | Rewrite and humanize | TodoWrite driven + sentinel |
|
|
127
|
+
| 3 | [phases/03-validate-score.md](phases/03-validate-score.md) | Re-score, generate report | TodoWrite driven |
|
|
128
|
+
|
|
129
|
+
**Compact Rules**:
|
|
130
|
+
1. **TodoWrite `in_progress`** → preserve full content, do not compress
|
|
131
|
+
2. **TodoWrite `completed`** → may compress to summary
|
|
132
|
+
3. **sentinel fallback** → phases marked with sentinel contain compact sentinel; if only sentinel remains, **must immediately `Read()` to recover**
|
|
133
|
+
|
|
134
|
+
## Core Rules
|
|
135
|
+
|
|
136
|
+
1. **Never lose meaning**: Technical claims, data, and specific facts must survive rewriting.
|
|
137
|
+
2. **Score before and after**: Every processed text gets a 5-dimension score (50-point scale).
|
|
138
|
+
3. **Flag, don't force**: In Conservative mode, highlight issues but let the user decide.
|
|
139
|
+
4. **Academic register**: For papers, maintain formal-but-natural tone. No slang or casual language.
|
|
140
|
+
5. **Minimum threshold**: Target score >= 35/50 for academic papers, >= 40/50 for submission-ready.
|
|
141
|
+
|
|
142
|
+
## Quick Scoring System (5 dimensions, 10 points each)
|
|
143
|
+
|
|
144
|
+
| Dimension | Question | Target |
|
|
145
|
+
|-----------|----------|--------|
|
|
146
|
+
| **Directness** | Direct statements or announcements? | >= 7 |
|
|
147
|
+
| **Rhythm** | Varied or metronomic? | >= 7 |
|
|
148
|
+
| **Trust** | Respects reader intelligence? | >= 7 |
|
|
149
|
+
| **Authenticity** | Sounds human? | >= 7 |
|
|
150
|
+
| **Density** | Anything cuttable? | >= 7 |
|
|
151
|
+
|
|
152
|
+
## Data Flow
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
Phase 1 ──patternReport──→ Phase 2
|
|
156
|
+
Phase 2 ──polishedText──→ Phase 3
|
|
157
|
+
Phase 1 ──originalText──→ Phase 3 (for comparison)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Error Handling
|
|
161
|
+
|
|
162
|
+
| Error | Action |
|
|
163
|
+
|-------|--------|
|
|
164
|
+
| File not found | Ask user for correct path |
|
|
165
|
+
| Mixed languages in one file | Process each section in detected language |
|
|
166
|
+
| Score below threshold after rewrite | Flag for manual review, suggest specific areas |
|
|
167
|
+
| LaTeX commands broken during rewrite | Preserve LaTeX structure, only modify prose content |
|
|
168
|
+
| User disagrees with changes | Offer side-by-side diff, allow per-section accept/reject |
|
|
169
|
+
|
|
170
|
+
## Related Skills
|
|
171
|
+
|
|
172
|
+
- **scholar-writing**: Phase 5 (Anti-AI Polish) uses this skill's patterns
|
|
173
|
+
- **scholar-review**: Uses scoring to assess writing quality
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# 中文 AI 写作模式 - 完整参考
|
|
2
|
+
|
|
3
|
+
Complete Chinese AI Writing Patterns Reference.
|
|
4
|
+
|
|
5
|
+
## 内容模式 (CONTENT PATTERNS)
|
|
6
|
+
|
|
7
|
+
### 1. 过度强调意义、遗产和更广泛的趋势
|
|
8
|
+
|
|
9
|
+
**需要注意的词汇**:作为/充当、标志着/见证、是……的体现/证明/提醒、极其重要的/重要的/至关重要的/核心的/关键性的作用/时刻、凸显/强调/彰显了其重要性/意义、反映了更广泛的、象征着其持续的/永恒的/持久的、为……做出贡献、为……奠定基础、标志着/塑造着、代表/标志着一个转变、关键转折点、不断演变的格局、焦点、不可磨灭的印记、深深植根于
|
|
10
|
+
|
|
11
|
+
**改写前**:
|
|
12
|
+
> 加泰罗尼亚统计局于 1989 年正式成立,标志着西班牙区域统计演变史上的关键时刻。这一举措是西班牙全国范围内更广泛运动的一部分,旨在分散行政职能并加强区域治理。
|
|
13
|
+
|
|
14
|
+
**改写后**:
|
|
15
|
+
> 加泰罗尼亚统计局成立于 1989 年,负责独立于西班牙国家统计局收集和发布区域统计数据。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
### 2. 过度强调知名度和媒体报道
|
|
20
|
+
|
|
21
|
+
**需要注意的词汇**:独立报道、地方/区域/国家媒体、由知名专家撰写、活跃的社交媒体账号
|
|
22
|
+
|
|
23
|
+
**改写前**:
|
|
24
|
+
> 她的观点被《纽约时报》、BBC、《金融时报》和《印度教徒报》引用。她在社交媒体上拥有活跃的存在,拥有超过 50 万粉丝。
|
|
25
|
+
|
|
26
|
+
**改写后**:
|
|
27
|
+
> 在 2024 年《纽约时报》的采访中,她认为 AI 监管应该关注结果而不是方法。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### 3. 以 -ing 结尾的肤浅分析
|
|
32
|
+
|
|
33
|
+
**需要注意的词汇**:突出/强调/彰显……、确保……、反映/象征……、为……做出贡献、培养/促进……、涵盖……、展示……
|
|
34
|
+
|
|
35
|
+
**改写前**:
|
|
36
|
+
> 寺庙的蓝色、绿色和金色色调与该地区的自然美景产生共鸣,象征着德克萨斯州的蓝帽花、墨西哥湾和多样化的德克萨斯州景观,反映了社区与土地的深厚联系。
|
|
37
|
+
|
|
38
|
+
**改写后**:
|
|
39
|
+
> 寺庙使用蓝色、绿色和金色。建筑师表示这些颜色是为了呼应当地的蓝帽花和墨西哥湾海岸。
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 4. 宣传和广告式语言
|
|
44
|
+
|
|
45
|
+
**需要注意的词汇**:拥有(夸张用法)、充满活力的、丰富的(比喻)、深刻的、增强其、展示、体现、致力于、自然之美、坐落于、位于……的中心、开创性的(比喻)、著名的、令人叹为观止的、必游之地、迷人的
|
|
46
|
+
|
|
47
|
+
**改写前**:
|
|
48
|
+
> 坐落在埃塞俄比亚贡德尔地区令人叹为观止的区域内,Alamata Raya Kobo 是一座充满活力的城镇,拥有丰富的文化遗产和迷人的自然美景。
|
|
49
|
+
|
|
50
|
+
**改写后**:
|
|
51
|
+
> Alamata Raya Kobo 是埃塞俄比亚贡德尔地区的一座城镇,以其每周集市和 18 世纪教堂而闻名。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### 5. 模糊归因和含糊措辞
|
|
56
|
+
|
|
57
|
+
**需要注意的词汇**:行业报告显示、观察者指出、专家认为、一些批评者认为、多个来源/出版物(实际引用却很少)
|
|
58
|
+
|
|
59
|
+
**改写前**:
|
|
60
|
+
> 由于其独特的特征,浩来河引起了研究人员和保护主义者的兴趣。专家认为它在区域生态系统中发挥着至关重要的作用。
|
|
61
|
+
|
|
62
|
+
**改写后**:
|
|
63
|
+
> 根据中国科学院 2019 年的调查,浩来河支持多种特有鱼类。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### 6. 提纲式的"挑战与未来展望"部分
|
|
68
|
+
|
|
69
|
+
**需要注意的词汇**:尽管其……面临若干挑战……、尽管存在这些挑战、挑战与遗产、未来展望
|
|
70
|
+
|
|
71
|
+
**改写前**:
|
|
72
|
+
> 尽管工业繁荣,Korattur 面临着城市地区典型的挑战,包括交通拥堵和水资源短缺。尽管存在这些挑战,凭借其战略位置和正在进行的举措,Korattur 继续蓬勃发展,成为钦奈增长不可或缺的一部分。
|
|
73
|
+
|
|
74
|
+
**改写后**:
|
|
75
|
+
> 2015 年三个新 IT 园区开业后,交通拥堵加剧。市政公司于 2022 年启动了雨水排水项目,以解决反复发生的洪水。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 语言和语法模式 (LANGUAGE PATTERNS)
|
|
80
|
+
|
|
81
|
+
### 7. 过度使用的"AI 词汇"
|
|
82
|
+
|
|
83
|
+
**高频 AI 词汇**:此外、与……保持一致、至关重要、深入探讨、强调、持久的、增强、培养、获得、突出(动词)、相互作用、复杂/复杂性、关键(形容词)、格局(抽象名词)、关键性的、展示、织锦(抽象名词)、证明、强调(动词)、宝贵的、充满活力的
|
|
84
|
+
|
|
85
|
+
**改写前**:
|
|
86
|
+
> 此外,索马里菜肴的一个显著特征是加入骆驼肉。意大利殖民影响的持久证明是当地烹饪格局中广泛采用意大利面,展示了这些菜肴如何融入传统饮食。
|
|
87
|
+
|
|
88
|
+
**改写后**:
|
|
89
|
+
> 索马里菜肴还包括骆驼肉,被认为是一种美味。在意大利殖民期间引入的意大利面菜肴仍然很常见,尤其是在南部。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 8. 避免使用"是"(系动词回避)
|
|
94
|
+
|
|
95
|
+
**需要注意的词汇**:作为/代表/标志着/充当 [一个]、拥有/设有/提供 [一个]
|
|
96
|
+
|
|
97
|
+
**改写前**:
|
|
98
|
+
> Gallery 825 作为 LAAA 的当代艺术展览空间。画廊设有四个独立空间,拥有超过 3000 平方英尺。
|
|
99
|
+
|
|
100
|
+
**改写后**:
|
|
101
|
+
> Gallery 825 是 LAAA 的当代艺术展览空间。画廊有四个房间,总面积 3000 平方英尺。
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### 9. 否定式排比
|
|
106
|
+
|
|
107
|
+
**改写前**:
|
|
108
|
+
> 这不仅仅是节拍在人声下流动;它是攻击性和氛围的一部分。这不仅仅是一首歌,而是一种声明。
|
|
109
|
+
|
|
110
|
+
**改写后**:
|
|
111
|
+
> 沉重的节拍增加了攻击性的基调。
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### 10. 三段式法则过度使用
|
|
116
|
+
|
|
117
|
+
**改写前**:
|
|
118
|
+
> 活动包括主题演讲、小组讨论和社交机会。与会者可以期待创新、灵感和行业洞察。
|
|
119
|
+
|
|
120
|
+
**改写后**:
|
|
121
|
+
> 活动包括演讲和小组讨论。会议之间还有非正式社交的时间。
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### 11. 刻意换词(同义词循环)
|
|
126
|
+
|
|
127
|
+
**改写前**:
|
|
128
|
+
> 主人公面临许多挑战。主要角色必须克服障碍。中心人物最终获得胜利。英雄回到家中。
|
|
129
|
+
|
|
130
|
+
**改写后**:
|
|
131
|
+
> 主人公面临许多挑战,但最终获得胜利并回到家中。
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 12. 虚假范围
|
|
136
|
+
|
|
137
|
+
**改写前**:
|
|
138
|
+
> 我们穿越宇宙的旅程将我们从大爆炸的奇点带到宏伟的宇宙网,从恒星的诞生和死亡到暗物质的神秘舞蹈。
|
|
139
|
+
|
|
140
|
+
**改写后**:
|
|
141
|
+
> 这本书涵盖了大爆炸、恒星形成和当前关于暗物质的理论。
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 风格模式 (STYLE PATTERNS)
|
|
146
|
+
|
|
147
|
+
### 13. 破折号过度使用
|
|
148
|
+
|
|
149
|
+
**改写前**:
|
|
150
|
+
> 这个术语主要由荷兰机构推广——而不是由人民自己。你不会说"荷兰,欧洲"作为地址——但这种错误标记仍在继续——即使在官方文件中。
|
|
151
|
+
|
|
152
|
+
**改写后**:
|
|
153
|
+
> 这个术语主要由荷兰机构推广,而不是由人民自己。你不会说"荷兰,欧洲"作为地址,但这种错误标记在官方文件中仍在继续。
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### 14. 粗体过度使用
|
|
158
|
+
|
|
159
|
+
**改写前**:
|
|
160
|
+
> 它融合了 **OKR(目标和关键结果)**、**KPI(关键绩效指标)** 和视觉战略工具,如 **商业模式画布(BMC)** 和 **平衡计分卡(BSC)**。
|
|
161
|
+
|
|
162
|
+
**改写后**:
|
|
163
|
+
> 它融合了 OKR、KPI 和视觉战略工具,如商业模式画布和平衡计分卡。
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 15. 内联标题垂直列表
|
|
168
|
+
|
|
169
|
+
**改写前**:
|
|
170
|
+
> - **用户体验:** 用户体验通过新界面得到显著改善。
|
|
171
|
+
> - **性能:** 性能通过优化算法得到增强。
|
|
172
|
+
> - **安全性:** 安全性通过端到端加密得到加强。
|
|
173
|
+
|
|
174
|
+
**改写后**:
|
|
175
|
+
> 更新改进了界面,通过优化算法加快了加载时间,并添加了端到端加密。
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 交流模式 (COMMUNICATION PATTERNS)
|
|
180
|
+
|
|
181
|
+
### 16. 协作交流痕迹
|
|
182
|
+
|
|
183
|
+
**需要注意的词汇**:希望这对您有帮助、当然!、一定!、您说得完全正确!、您想要……、请告诉我、这是一个……
|
|
184
|
+
|
|
185
|
+
**改写前**:
|
|
186
|
+
> 这是法国大革命的概述。希望这对您有帮助!如果您想让我扩展任何部分,请告诉我。
|
|
187
|
+
|
|
188
|
+
**改写后**:
|
|
189
|
+
> 法国大革命始于 1789 年,当时财政危机和粮食短缺导致了广泛的动荡。
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### 17. 知识截止日期免责声明
|
|
194
|
+
|
|
195
|
+
**需要注意的词汇**:截至 [日期]、根据我最后的训练更新、虽然具体细节有限/稀缺……、基于可用信息……
|
|
196
|
+
|
|
197
|
+
**改写前**:
|
|
198
|
+
> 虽然关于公司成立的具体细节在现成资料中没有广泛记录,但它似乎是在 20 世纪 90 年代的某个时候成立的。
|
|
199
|
+
|
|
200
|
+
**改写后**:
|
|
201
|
+
> 根据注册文件,该公司成立于 1994 年。
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 填充模式 (FILLER PATTERNS)
|
|
206
|
+
|
|
207
|
+
### 18. 填充短语
|
|
208
|
+
|
|
209
|
+
| 改写前 | 改写后 |
|
|
210
|
+
|--------|--------|
|
|
211
|
+
| "为了实现这一目标" | "为了实现这一点" |
|
|
212
|
+
| "由于下雨的事实" | "因为下雨" |
|
|
213
|
+
| "在这个时间点" | "现在" |
|
|
214
|
+
| "在您需要帮助的情况下" | "如果您需要帮助" |
|
|
215
|
+
| "系统具有处理的能力" | "系统可以处理" |
|
|
216
|
+
| "值得注意的是数据显示" | "数据显示" |
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### 19. 过度限定
|
|
221
|
+
|
|
222
|
+
**改写前**:
|
|
223
|
+
> 可以潜在地可能被认为该政策可能会对结果产生一些影响。
|
|
224
|
+
|
|
225
|
+
**改写后**:
|
|
226
|
+
> 该政策可能会影响结果。
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### 20. 通用积极结论
|
|
231
|
+
|
|
232
|
+
**改写前**:
|
|
233
|
+
> 公司的未来看起来光明。激动人心的时代即将到来,他们继续追求卓越的旅程。这代表了向正确方向迈出的重要一步。
|
|
234
|
+
|
|
235
|
+
**改写后**:
|
|
236
|
+
> 该公司计划明年再开设两个地点。
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 来源
|
|
241
|
+
|
|
242
|
+
[基于维基百科:AI 写作特征](https://en.wikipedia.org/wiki/Wikipedia/Signs_of_AI_writing)
|