Repository Analysis

worldwonderer/oh-story-claudecode

网文/小说写作 skill 包,覆盖长篇与短篇网络小说的扫榜、拆文、写作、去AI味、封面图全流程 | An all-in-one skill pack for long- and short-form web fiction.

4.0 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of worldwonderer/oh-story-claudecode, a JavaScript project with 6,188 GitHub stars. SynthScan v2.0 examined 133,203 lines of code across 571 source files, recording 411 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 4.0 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

4.0
Adjusted Score
4.0
Raw Score
100%
Time Factor
2026-08-28
Last Push
6.2K
Stars
JavaScript
Language
133.2K
Lines of Code
571
Files
411
Pattern Hits
2026-08-29
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 18MEDIUM 12LOW 381

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 411 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers181 hits · 180 pts
SeverityFileLineSnippetContext
LOWscripts/sync-shared-assets.py174def unmanaged_duplicate_scripts(root: Path, groups: list[Group]) -> list[tuple[str, list[Path]]]:CODE
LOWscripts/test-scan-runtime-policy.py52def mutate_filename_with_dead_local_date(fixture: Path) -> None:CODE
LOWscripts/test-scan-runtime-policy.py63def mutate_http_get_with_dead_safe_call(fixture: Path) -> None:CODE
LOWscripts/skill-numbering.py356def containing_workflow_parent(document: Document, line_index: int) -> int | None:CODE
LOWscripts/skill-numbering.py650def unparsable_step_heading_issues(document: Document) -> list[Issue]:CODE
LOWscripts/test-scan-runtime.js321function testWindowsInvocationBuilder(modulePath) {CODE
LOWscripts/test-scan-runtime.js477function testJjwxcDetailFailureIsolation() {CODE
LOWscripts/test-scan-runtime.js556function testQidianFieldContractAndDescriptionLimit() {CODE
LOWscripts/test-scan-runtime.js721function testQimaoPartialTargetStatus() {CODE
LOWscripts/test-scan-runtime.js737function testLongScanArgumentValidation() {CODE
LOWscripts/test-scan-runtime.js761function testHeiyanFieldDriftAndWordFormat() {CODE
LOWscripts/test-scan-runtime.js1215function testCdpResetRefusesStaleEndpoint() {CODE
LOWscripts/test-scan-runtime.js1254function testCdpResetRefusesUnhealthyTcpHolder() {CODE
LOWscripts/test-scan-runtime.js1271function testCdpResetSucceedsWhenPortActuallyFrees() {CODE
LOWscripts/test-scan-runtime.js1291function testCdpPlainReuseUnchanged() {CODE
LOWscripts/test-scan-runtime.js1309function testCdpRejectsEndpointNotFromThisLaunch() {CODE
LOWscripts/test-scan-runtime.js1332function testCdpRejectsForeignHolderWhileLauncherAlive() {CODE
LOWscripts/test-scan-runtime.js1369function testCdpRejectsPortHeldOutsideSpawnedTree() {CODE
LOWscripts/test-scan-runtime.js1395function testCdpAcceptsPortHeldByLaunchedChildProcess() {CODE
LOWscripts/test-scan-runtime.js1414function testCdpRejectsUnverifiableIdentity() {CODE
LOWscripts/check-current-skill-contracts.py531def undecodable_source_findings(roots: Sequence[Path]) -> List[Finding]:CODE
LOWscripts/check-current-skill-contracts.py630def semantic_primary_fallback_findings(CODE
LOWscripts/check-current-skill-contracts.py808def parse_frontmatter_version(path: Path) -> Optional[str]:CODE
LOWscripts/check-current-skill-contracts.py824def extract_current_version_fields(text: str) -> dict[str, str]:CODE
LOWscripts/check-current-skill-contracts.py852def upgrading_version_findings(CODE
LOWscripts/check-current-skill-contracts.py948def sentinel_contract_findings(CODE
LOWscripts/check-current-skill-contracts.py1009def extract_outline_rule_fields(text: str) -> set[str]:CODE
LOWscripts/check-current-skill-contracts.py1034def outline_rule_contract_findings(CODE
LOWscripts/check-current-skill-contracts.py1051def extract_demo_outline_fields(text: str) -> set[str]:CODE
LOWscripts/check-current-skill-contracts.py1068def progress_schema_pin_findings(repo_root: Path, expected: int) -> List[Finding]:CODE
LOWscripts/test-storyctl.py41 def test_frozen_unicode_counting_contract(self) -> None:CODE
LOWscripts/test-storyctl.py70 def test_frontmatter_and_first_heading_are_not_body(self) -> None:CODE
LOWscripts/test-storyctl.py76 def test_bands_and_status_boundaries(self) -> None:CODE
LOWscripts/test-storyctl.py115 def test_outline_target_rejections_remain_unchanged(self) -> None:CODE
LOWscripts/test-storyctl.py129 def test_checkpoint_reports_only_current_count_and_remaining_user_range(self) -> None:CODE
LOWscripts/test-storyctl.py138 def test_commit_record_has_no_event_or_approval_chain(self) -> None:CODE
LOWscripts/test-storyctl.py161 def test_chapter_check_cli_reads_bom_crlf_outline_target(self) -> None:CODE
LOWscripts/test-storyctl.py206 def test_wordcount_measure_returns_actual_without_a_target(self) -> None:CODE
LOWscripts/test-storyctl.py220 def test_wordcount_check_returns_structured_result(self) -> None:CODE
LOWscripts/test-storyctl.py247 def test_wordcount_checkpoint_is_a_pure_measurement(self) -> None:CODE
LOWscripts/test-storyctl.py258 def test_cli_errors_are_json_and_nonzero(self) -> None:CODE
LOWscripts/test-storyctl.py268 def test_demo_outlines_and_bodies_use_the_same_metric(self) -> None:CODE
LOWscripts/test-tracking-commit.py445 def test_imported_cutoff_requires_only_new_daily_records(self) -> None:CODE
LOWscripts/test-tracking-commit.py455 def test_imported_chapter_revision_creates_an_overlay_record(self) -> None:CODE
LOWscripts/test-tracking-commit.py462 def test_check_compares_derived_views_to_state_without_parsing_markdown(self) -> None:CODE
LOWscripts/test-tracking-commit.py523 def test_commit_and_check_still_refuse_a_retired_layout(self) -> None:CODE
LOWscripts/test-tracking-commit.py531 def test_dropping_a_context_item_without_declaring_it_is_rejected(self) -> None:CODE
LOWscripts/test-tracking-commit.py540 def test_declared_context_retirement_is_recorded_in_the_chapter_delta(self) -> None:CODE
LOWscripts/test-tracking-commit.py224 def test_init_creates_one_structured_authority_and_only_derived_views(self) -> None:CODE
LOWscripts/test-tracking-commit.py242 def test_commit_updates_state_and_all_demo_derived_views(self) -> None:CODE
LOWscripts/test-tracking-commit.py260 def test_simple_wordcount_record_commits_the_exact_current_body(self) -> None:CODE
LOWscripts/test-tracking-commit.py280 def test_body_or_target_change_rejects_a_prepared_record_without_writes(self) -> None:CODE
LOWscripts/test-tracking-commit.py300 def test_two_concurrent_different_commits_advance_only_one_revision(self) -> None:CODE
LOWscripts/test-tracking-commit.py329 def test_character_snapshot_lists_are_not_limited_to_eight_items(self) -> None:CODE
LOWscripts/test-tracking-commit.py340 def test_snapshot_target_warns_and_hard_cap_rejects_before_any_write(self) -> None:CODE
LOWscripts/test-tracking-commit.py356 def test_missing_active_snapshot_is_rejected_before_any_write(self) -> None:CODE
LOWscripts/test-tracking-commit.py368 def test_partial_view_write_keeps_old_authority_and_same_transaction_can_retry(self) -> None:CODE
LOWscripts/test-tracking-commit.py393 def test_stale_revision_cannot_overwrite_newer_state(self) -> None:CODE
LOWscripts/test-tracking-commit.py406 def test_old_revision_preserves_current_next_chapter_commitment(self) -> None:CODE
LOWscripts/test-tracking-commit.py417 def test_old_revision_applies_current_rows_without_moving_update_chapter_back(self) -> None:CODE
121 more matches not shown…
Cross-File Repetition17 hits · 85 pts
SeverityFileLineSnippetContext
HIGHskills/story-long-write/scripts/author_memory_commit.py0maintain evidence-backed author preferences and deterministic markdown views. the language model supplies compact semantSTRING
HIGHskills/story-deslop/scripts/author_memory_commit.py0maintain evidence-backed author preferences and deterministic markdown views. the language model supplies compact semantSTRING
HIGHskills/story-review/scripts/author_memory_commit.py0maintain evidence-backed author preferences and deterministic markdown views. the language model supplies compact semantSTRING
HIGH…ills/story-short-write/scripts/author_memory_commit.py0maintain evidence-backed author preferences and deterministic markdown views. the language model supplies compact semantSTRING
HIGHskills/story/scripts/author_memory_commit.py0maintain evidence-backed author preferences and deterministic markdown views. the language model supplies compact semantSTRING
HIGHskills/story-long-write/scripts/tracking_commit.py0maintain one structured story state and its deterministic markdown views. the language model supplies compact semantic jSTRING
HIGHskills/story-review/scripts/tracking_commit.py0maintain one structured story state and its deterministic markdown views. the language model supplies compact semantic jSTRING
HIGHskills/story-import/scripts/tracking_commit.py0maintain one structured story state and its deterministic markdown views. the language model supplies compact semantic jSTRING
HIGHskills/story-long-write/scripts/tracking_commit.py0write utf-8 bytes directly. windows 的文本 stdout 是 cp1252(含中文即 unicodeencodeerror),stderr 默认 backslashreplace(中文被转义成反斜杠码位,STRING
HIGHskills/story-review/scripts/tracking_commit.py0write utf-8 bytes directly. windows 的文本 stdout 是 cp1252(含中文即 unicodeencodeerror),stderr 默认 backslashreplace(中文被转义成反斜杠码位,STRING
HIGHskills/story-import/scripts/tracking_commit.py0write utf-8 bytes directly. windows 的文本 stdout 是 cp1252(含中文即 unicodeencodeerror),stderr 默认 backslashreplace(中文被转义成反斜杠码位,STRING
HIGHskills/story-long-write/scripts/tracking_commit.py0move a pre-transaction 追踪/ aside so init can build the current protocol in place. nothing is parsed or converted: the olSTRING
HIGHskills/story-review/scripts/tracking_commit.py0move a pre-transaction 追踪/ aside so init can build the current protocol in place. nothing is parsed or converted: the olSTRING
HIGHskills/story-import/scripts/tracking_commit.py0move a pre-transaction 追踪/ aside so init can build the current protocol in place. nothing is parsed or converted: the olSTRING
HIGHskills/story-long-write/scripts/wordcount_core.py0small deterministic wordcount core shared by storyctl and tracking.STRING
HIGHskills/story-review/scripts/wordcount_core.py0small deterministic wordcount core shared by storyctl and tracking.STRING
HIGHskills/story-import/scripts/wordcount_core.py0small deterministic wordcount core shared by storyctl and tracking.STRING
Structural Annotation Overuse31 hits · 50 pts
SeverityFileLineSnippetContext
LOWscripts/test-skill-numbering.sh63### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh71### Step 2: former secondCOMMENT
LOWscripts/test-skill-numbering.sh73#### Step 4: nested firstCOMMENT
LOWscripts/test-skill-numbering.sh77#### Step 8: nested secondCOMMENT
LOWscripts/test-skill-numbering.sh87### Step 7: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh89### Step 9: beta secondCOMMENT
LOWscripts/test-skill-numbering.sh129### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh133### Step 2: insertedCOMMENT
LOWscripts/test-skill-numbering.sh137### Step 3: former secondCOMMENT
LOWscripts/test-skill-numbering.sh139#### Step 1: nested firstCOMMENT
LOWscripts/test-skill-numbering.sh143#### Step 2: nested secondCOMMENT
LOWscripts/test-skill-numbering.sh153### Step 1: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh155### Step 2: beta secondCOMMENT
LOWscripts/test-skill-numbering.sh180### Step 1: only stepCOMMENT
LOWscripts/test-skill-numbering.sh189### Step 9: should become oneCOMMENT
LOWscripts/test-skill-numbering.sh210### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh216### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh253### Step 1: alpha onlyCOMMENT
LOWscripts/test-skill-numbering.sh257### Step 1: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh274### Step 8: alphaCOMMENT
LOWscripts/test-skill-numbering.sh281### Step 9: betaCOMMENT
LOWscripts/test-skill-numbering.sh375### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh382### Step 2: former secondCOMMENT
LOWscripts/test-skill-numbering.sh108assert_contains "$WORK/dry-run.out" "+### Step 2: inserted"CODE
LOWscripts/test-skill-numbering.sh109assert_contains "$WORK/dry-run.out" "+### Step 3: former second"CODE
LOW…ory-long-analyze/references/style-profile-generator.md9### Step 1: 读拆文报告核心字段COMMENT
LOW…ory-long-analyze/references/style-profile-generator.md19### Step 2: 读黄金三章深度拆解COMMENT
LOW…ory-long-analyze/references/style-profile-generator.md28### Step 3: 提取章节基调/主题标签序列COMMENT
LOW…ory-long-analyze/references/style-profile-generator.md49### Step 4: 原文采样COMMENT
LOW…ory-long-analyze/references/style-profile-generator.md96### Step 5: 选原文锚点片段 (4-6 段)COMMENT
LOW…ory-long-analyze/references/style-profile-generator.md113### Step 6: 落盘COMMENT
Deep Nesting51 hits · 47 pts
SeverityFileLineSnippetContext
LOWscripts/sync-shared-assets.py174CODE
LOWscripts/sync-shared-assets.py204CODE
LOWscripts/shared-references.py74CODE
LOWscripts/shared-references.py253CODE
LOWscripts/skill-numbering.py261CODE
LOWscripts/skill-numbering.py373CODE
LOWscripts/skill-numbering.py537CODE
LOWscripts/skill-numbering.py826CODE
LOWscripts/check-current-skill-contracts.py321CODE
LOWscripts/check-current-skill-contracts.py565CODE
LOWscripts/check-current-skill-contracts.py741CODE
LOWscripts/check-current-skill-contracts.py1068CODE
LOWscripts/check-current-skill-contracts.py1107CODE
LOWscripts/sync-opencode.py46CODE
LOWscripts/sync-opencode.py168CODE
LOWscripts/sync-opencode.py331CODE
LOWscripts/static-check.py200CODE
LOWscripts/static-check.py300CODE
LOWscripts/static-check.py381CODE
LOWscripts/static-check.py439CODE
LOWscripts/generate-codex-agents.py31CODE
LOWscripts/generate-codex-agents.py128CODE
LOWskills/story-long-write/scripts/author_memory_commit.py339CODE
LOWskills/story-long-write/scripts/author_memory_commit.py451CODE
LOWskills/story-long-write/scripts/author_memory_commit.py547CODE
LOWskills/story-long-write/scripts/author_memory_commit.py850CODE
LOWskills/story-deslop/scripts/author_memory_commit.py339CODE
LOWskills/story-deslop/scripts/author_memory_commit.py451CODE
LOWskills/story-deslop/scripts/author_memory_commit.py547CODE
LOWskills/story-deslop/scripts/author_memory_commit.py850CODE
LOWskills/story-review/scripts/author_memory_commit.py339CODE
LOWskills/story-review/scripts/author_memory_commit.py451CODE
LOWskills/story-review/scripts/author_memory_commit.py547CODE
LOWskills/story-review/scripts/author_memory_commit.py850CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py329CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py823CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py887CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1191CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1311CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1426CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1529CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1334CODE
LOWskills/story-setup/scripts/deploy-antigravity-skills.py57CODE
LOW…ills/story-short-write/scripts/author_memory_commit.py339CODE
LOW…ills/story-short-write/scripts/author_memory_commit.py451CODE
LOW…ills/story-short-write/scripts/author_memory_commit.py547CODE
LOW…ills/story-short-write/scripts/author_memory_commit.py850CODE
LOWskills/story/scripts/author_memory_commit.py339CODE
LOWskills/story/scripts/author_memory_commit.py451CODE
LOWskills/story/scripts/author_memory_commit.py547CODE
LOWskills/story/scripts/author_memory_commit.py850CODE
Unused Imports40 hits · 39 pts
SeverityFileLineSnippetContext
LOWscripts/test-antigravity-hook-merge.py4CODE
LOWscripts/sync-shared-assets.py8CODE
LOWscripts/shared-references.py4CODE
LOWscripts/test-scan-runtime-policy.py4CODE
LOWscripts/check-short-analysis-scope.py4CODE
LOWscripts/skill-numbering.py10CODE
LOWscripts/generate-codex-hooks.py4CODE
LOWscripts/check-current-skill-contracts.py10CODE
LOWscripts/check-reference-similarity.py4CODE
LOWscripts/test-storyctl.py2CODE
LOWscripts/test-tracking-commit.py4CODE
LOWscripts/test-static-check.py4CODE
LOWscripts/check-agent-reference-consumers.py4CODE
LOWscripts/test-antigravity-skills-deploy.py4CODE
LOWscripts/test-author-memory-commit.py4CODE
LOWscripts/test-codex-hook-merge.py4CODE
LOWscripts/test-current-skill-contracts.py4CODE
LOWscripts/static-check.py4CODE
LOWscripts/test-chapter-completion-lifecycle.py4CODE
LOWscripts/test-shared-assets.py4CODE
LOWscripts/test-shared-references.py4CODE
LOWscripts/generate-codex-agents.py9CODE
LOWskills/story-long-write/scripts/author_memory_commit.py10CODE
LOWskills/story-long-write/scripts/tracking_commit.py10CODE
LOWskills/story-long-write/scripts/wordcount_core.py4CODE
LOWskills/story-long-write/scripts/storyctl.py4CODE
LOWskills/story-deslop/scripts/author_memory_commit.py10CODE
LOWskills/story-review/scripts/author_memory_commit.py10CODE
LOWskills/story-review/scripts/tracking_commit.py10CODE
LOWskills/story-review/scripts/wordcount_core.py4CODE
LOWskills/story-import/scripts/tracking_commit.py10CODE
LOWskills/story-import/scripts/wordcount_core.py4CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py7CODE
LOWskills/story-setup/scripts/copy-path-safety.py4CODE
LOWskills/story-setup/scripts/merge-codex-hooks.py9CODE
LOWskills/story-setup/scripts/merge-claude-settings.py9CODE
LOWskills/story-setup/scripts/deploy-antigravity-skills.py9CODE
LOWskills/story-setup/scripts/merge-antigravity-hooks.py8CODE
LOW…ills/story-short-write/scripts/author_memory_commit.py10CODE
LOWskills/story/scripts/author_memory_commit.py10CODE
Verbosity Indicators25 hits · 39 pts
SeverityFileLineSnippetContext
LOWscripts/test-skill-numbering.sh63### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh71### Step 2: former secondCOMMENT
LOWscripts/test-skill-numbering.sh73#### Step 4: nested firstCOMMENT
LOWscripts/test-skill-numbering.sh77#### Step 8: nested secondCOMMENT
LOWscripts/test-skill-numbering.sh87### Step 7: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh89### Step 9: beta secondCOMMENT
LOWscripts/test-skill-numbering.sh129### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh133### Step 2: insertedCOMMENT
LOWscripts/test-skill-numbering.sh137### Step 3: former secondCOMMENT
LOWscripts/test-skill-numbering.sh139#### Step 1: nested firstCOMMENT
LOWscripts/test-skill-numbering.sh143#### Step 2: nested secondCOMMENT
LOWscripts/test-skill-numbering.sh153### Step 1: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh155### Step 2: beta secondCOMMENT
LOWscripts/test-skill-numbering.sh180### Step 1: only stepCOMMENT
LOWscripts/test-skill-numbering.sh189### Step 9: should become oneCOMMENT
LOWscripts/test-skill-numbering.sh210### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh216### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh253### Step 1: alpha onlyCOMMENT
LOWscripts/test-skill-numbering.sh257### Step 1: beta firstCOMMENT
LOWscripts/test-skill-numbering.sh274### Step 8: alphaCOMMENT
LOWscripts/test-skill-numbering.sh281### Step 9: betaCOMMENT
LOWscripts/test-skill-numbering.sh375### Step 1: firstCOMMENT
LOWscripts/test-skill-numbering.sh382### Step 2: former secondCOMMENT
LOWscripts/test-skill-numbering.sh108assert_contains "$WORK/dry-run.out" "+### Step 2: inserted"CODE
LOWscripts/test-skill-numbering.sh109assert_contains "$WORK/dry-run.out" "+### Step 3: former second"CODE
Over-Commented Block32 hits · 32 pts
SeverityFileLineSnippetContext
LOWscripts/check-python-invocation.sh1#!/bin/bashCOMMENT
LOWscripts/test-hook-encoding-portable.sh1#!/bin/bashCOMMENT
LOWscripts/test-charcount-portable.sh1#!/bin/bashCOMMENT
LOWscripts/test-prose-net-parity.sh1#!/bin/bashCOMMENT
LOWskills/story-long-write/scripts/check-ai-patterns.js181COMMENT
LOWskills/story-long-write/scripts/check-ai-patterns.js221// 反序对比腔(实战漏网 C):「是真嗓子,不是修音修出来的」——not-is-comparison 的反序变种。COMMENT
LOWskills/story-long-write/scripts/check-ai-patterns.js241// 「这一切都结束了」「新的人生才刚刚开始」「命运的齿轮」)。与 trailer-ending 共用文末窗口,COMMENT
LOWskills/story-long-write/scripts/check-ai-patterns.js1361 const next = skipGap(candidate, index + 1);COMMENT
LOWskills/story-deslop/scripts/check-ai-patterns.js181COMMENT
LOWskills/story-deslop/scripts/check-ai-patterns.js221// 反序对比腔(实战漏网 C):「是真嗓子,不是修音修出来的」——not-is-comparison 的反序变种。COMMENT
LOWskills/story-deslop/scripts/check-ai-patterns.js241// 「这一切都结束了」「新的人生才刚刚开始」「命运的齿轮」)。与 trailer-ending 共用文末窗口,COMMENT
LOWskills/story-deslop/scripts/check-ai-patterns.js1361 const next = skipGap(candidate, index + 1);COMMENT
LOWskills/story-review/scripts/check-ai-patterns.js181COMMENT
LOWskills/story-review/scripts/check-ai-patterns.js221// 反序对比腔(实战漏网 C):「是真嗓子,不是修音修出来的」——not-is-comparison 的反序变种。COMMENT
LOWskills/story-review/scripts/check-ai-patterns.js241// 「这一切都结束了」「新的人生才刚刚开始」「命运的齿轮」)。与 trailer-ending 共用文末窗口,COMMENT
LOWskills/story-review/scripts/check-ai-patterns.js1361 const next = skipGap(candidate, index + 1);COMMENT
LOWskills/browser-cdp/scripts/setup-cdp-chrome.js1#!/usr/bin/env nodeCOMMENT
LOWskills/browser-cdp/scripts/setup-cdp-chrome.js21// 就是本次启动的实例」——身份取得到且与重建前不同、spawn 出的进程还活着、端口的 LISTENCOMMENT
LOW…/story-setup/references/zcode/hooks/story_hook_core.js1101// 只查角色卡:整棵 设定/ 一刀切会让每次碰设定的提交都刷一屏假警告,把同框的COMMENT
LOW…ory-setup/references/templates/hooks/story_hook_cli.js1#!/usr/bin/env nodeCOMMENT
LOW…ferences/templates/hooks/guard-outline-before-prose.sh1#!/bin/bashCOMMENT
LOW…ferences/templates/hooks/guard-outline-before-prose.sh21# 处理、与 bash 区域无关;拦截判定全在下方 bash,不受影响。COMMENT
LOW…ry-setup/references/templates/hooks/story_hook_core.js1101// 只查角色卡:整棵 设定/ 一刀切会让每次碰设定的提交都刷一屏假警告,把同框的COMMENT
LOW…up/references/templates/hooks/validate-story-commit.sh61 # 冒号/空白都用交替而不是把全角字符塞进方括号字符组:含全角字符的字符组在 C 区域会被COMMENT
LOW…/references/templates/hooks/check-prose-after-write.sh1#!/bin/bashCOMMENT
LOW…-setup/references/antigravity/hooks/story_hook_core.js1101// 只查角色卡:整棵 设定/ 一刀切会让每次碰设定的提交都刷一屏假警告,把同框的COMMENT
LOW…lls/story-setup/references/opencode/story_hook_core.js1101// 只查角色卡:整棵 设定/ 一刀切会让每次碰设定的提交都刷一屏假警告,把同框的COMMENT
LOWskills/story-setup/references/opencode/pre-commit.sh1#!/bin/shCOMMENT
LOWskills/story-short-write/scripts/check-ai-patterns.js181COMMENT
LOWskills/story-short-write/scripts/check-ai-patterns.js221// 反序对比腔(实战漏网 C):「是真嗓子,不是修音修出来的」——not-is-comparison 的反序变种。COMMENT
LOWskills/story-short-write/scripts/check-ai-patterns.js241// 「这一切都结束了」「新的人生才刚刚开始」「命运的齿轮」)。与 trailer-ending 共用文末窗口,COMMENT
LOWskills/story-short-write/scripts/check-ai-patterns.js1361 const next = skipGap(candidate, index + 1);COMMENT
Decorative Section Separators9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMscripts/test-ai-patterns.sh1007# ============================================================COMMENT
MEDIUMscripts/test-ai-patterns.sh1010# ============================================================COMMENT
MEDIUMscripts/test-prose-net-parity.sh257# ── B. 命令函数 parity(codex python vs zcode JS),CI 硬保证 ─────────────────COMMENT
MEDIUMscripts/test-prose-net-parity.sh461# ── C. 未归核面 parity(codex python vs JS core),CI 硬保证 ─────────────────────COMMENT
MEDIUMscripts/check-hook-regex-sync.sh158# ── 毒句式 js↔py 同步锁 ─────────────────────────────────────────────────────COMMENT
MEDIUM…/story-setup/references/zcode/hooks/story_hook_core.js736// ── 毒句式(确定性 AI 句式指纹,写后正文网热路径)─────────────────────────────COMMENT
MEDIUM…ry-setup/references/templates/hooks/story_hook_core.js736// ── 毒句式(确定性 AI 句式指纹,写后正文网热路径)─────────────────────────────COMMENT
MEDIUM…-setup/references/antigravity/hooks/story_hook_core.js736// ── 毒句式(确定性 AI 句式指纹,写后正文网热路径)─────────────────────────────COMMENT
MEDIUM…lls/story-setup/references/opencode/story_hook_core.js736// ── 毒句式(确定性 AI 句式指纹,写后正文网热路径)─────────────────────────────COMMENT
Excessive Try-Catch Wrapping20 hits · 20 pts
SeverityFileLineSnippetContext
LOWscripts/skill-numbering.py845 except Exception:CODE
LOWscripts/check-openclaw-skills.sh62 except Exception:CODE
LOWscripts/check-openclaw-skills.sh88 except Exception as exc:CODE
LOWskills/story-long-write/scripts/storyctl.py51 except Exception as exc:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py39 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py61 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py79 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py94 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py102 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py151 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py398 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py509 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py519 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1320 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1322 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1434 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1497 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1512 except Exception:CODE
LOW…story-setup/references/codex/hooks/story_codex_hook.py1524 except Exception:CODE
LOWskills/story-setup/scripts/deploy-antigravity-skills.py104 except Exception:CODE
Modern AI Meta-Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMdemo/长篇/让你管账号,你高燃混剪炸全网/设定/文风.md36## 六、原文 few-shot 锚点COMMENT
MEDIUM…story-setup/references/zcode/hooks/story_zcode_hook.js200 // Hook checks are defensive guardrails. Unexpected parse/filesystem failuresCOMMENT
MEDIUM…s/story-setup/references/antigravity/rules/oh-story.md25## Writing guardrailsCOMMENT
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/generate-codex-hooks.py29 'ROOT="$(cd "$ROOT" 2>/dev/null && pwd)" || exit 0; 'CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/test-prose-net-parity.sh67 "placeholder": "他打开门。\n(此处省略三百字打斗描写)他赢了。",CODE