Repository Analysis

titanwings/colleague-skill

将冰冷的离别化为温暖的 Skill,欢迎加入数字生命1.0!Transforming cold farewells into warm skills? It's giving rebirth era. Welcome to Digital Life 1.0. 🫶

13.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of titanwings/colleague-skill, a Python project with 20,275 GitHub stars. SynthScan v2.0 examined 21,374 lines of code across 95 source files, recording 192 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 13.7 places this repository in the Low AI signal 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).

13.7
Adjusted Score
13.7
Raw Score
100%
Time Factor
2026-06-01
Last Push
20.3K
Stars
Python
Language
21.4K
Lines of Code
95
Files
192
Pattern Hits
2026-07-14
Scan Date
0.08
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 8MEDIUM 30LOW 154

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 192 distinct pattern matches across 9 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.

Decorative Section Separators28 hits · 82 pts
SeverityFileLineSnippetContext
MEDIUMtools/feishu_auto_collector.py63# ─── 配置 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py126# ─── Token ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py197# ─── 用户搜索 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py365# ─── 消息记录 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py663# ─── 文档采集 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py774# ─── 多维表格 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_auto_collector.py829# ─── 主流程 ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_mcp_client.py48# ─── 配置管理 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_mcp_client.py90# ─── MCP 调用封装 ─────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_mcp_client.py149# ─── 功能函数 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/feishu_mcp_client.py253# ─── CLI ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py43# ─── 依赖检查 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py55# ─── 常量 ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py72# ─── 错误类型 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py86# ─── 配置管理 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py156# ─── Slack Client 封装(带速率限制重试)─────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py236# ─── 用户搜索 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py328# ─── 频道发现 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py393# ─── 消息采集 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py490# ─── 主采集流程 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/slack_auto_collector.py649# ─── CLI 入口 ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py49# ─── 配置 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py91# ─── Token ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py141# ─── 用户搜索 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py214# ─── 文档采集 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py366# ─── 多维表格 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py482# ─── 消息记录(浏览器方案)────────────────────────────────────────────────────COMMENT
MEDIUMtools/dingtalk_auto_collector.py670# ─── 主流程 ───────────────────────────────────────────────────────────────────STRING
Hyper-Verbose Identifiers53 hits · 52 pts
SeverityFileLineSnippetContext
LOWtools/skill_presets.py195def normalize_research_profile(character: str | None, research_profile: str | None) -> str:CODE
LOWtools/skill_presets.py212def get_research_profile_preset(character: str | None, research_profile: str | None = None) -> dict:CODE
LOWtools/skill_presets.py265def resolve_existing_storage_root(CODE
LOWtools/install_generated_skill_common.py52def render_installed_markdown(skill_dir: Path, artifact_name: str, command_name: str) -> str:CODE
LOWtools/slack_auto_collector.py395def fetch_messages_from_channel(CODE
LOWtools/install_openclaw_generated_skill.py12def default_openclaw_skills_dir() -> Path:CODE
LOWtools/feishu_browser.py35def get_default_chrome_profile() -> str:CODE
LOWtools/install_claude_generated_skill.py17def default_claude_skills_dir() -> Path:CODE
LOWtools/install_claude_generated_skill.py22def default_claude_commands_dir() -> Path:CODE
LOWtools/install_claude_generated_skill.py27def should_install_command_shim(system_name: str | None = None) -> bool:CODE
LOWtools/dingtalk_auto_collector.py484def get_default_chrome_profile() -> str:CODE
LOWtools/research/merge_research.py40def collect_structured_section_metrics(text: str) -> dict:CODE
LOWtools/research/merge_research.py77def collect_source_weight_distribution(text: str) -> Counter:CODE
LOWtools/research/merge_research.py106def count_potential_long_quote_lines(text: str) -> int:CODE
LOWtools/research/quality_check.py63def extract_summary_percentage(summary_text: str, label: str) -> int:CODE
LOWtools/research/transcribe_audio.py80def transcribe_with_faster_whisper(audio_path: Path, model_name: str, language: Optional[str]) -> str:CODE
LOWtools/research/transcribe_audio.py116def transcribe_with_openai_whisper(audio_path: Path, model_name: str, language: Optional[str]) -> str:CODE
LOWtools/research/transcribe_audio.py143def transcribe_with_openai_api(audio_path: Path, language: Optional[str]) -> str:CODE
LOWtests/test_skill_entrypoint_docs.py9 def test_root_skill_uses_dot_skill_entrypoint(self) -> None:CODE
LOWtests/test_skill_entrypoint_docs.py41 def test_readme_and_install_use_dot_skill_paths(self) -> None:CODE
LOWtests/test_skill_entrypoint_docs.py70 def test_repo_examples_live_under_skills_colleague(self) -> None:CODE
LOWtests/test_skill_entrypoint_docs.py76 def test_multilingual_readmes_include_dot_skill_and_research_toolchain(self) -> None:CODE
LOWtests/test_skill_writer.py25 def test_create_colleague_keeps_legacy_names_and_adds_engine_schema(self) -> None:CODE
LOWtests/test_skill_writer.py88 def test_create_relationship_uses_character_preset_metadata(self) -> None:CODE
LOWtests/test_skill_writer.py122 def test_create_skill_renders_chinese_chrome_when_language_is_zh_cn(self) -> None:CODE
LOWtests/test_skill_writer.py150 def test_create_celebrity_adds_research_dirs_and_toolchain(self) -> None:CODE
LOWtests/test_skill_writer.py193 def test_create_celebrity_budget_unfriendly_embeds_profile_config(self) -> None:CODE
LOWtests/test_skill_writer.py232 def test_create_celebrity_accepts_string_profile_from_runtime_meta(self) -> None:CODE
LOWtests/test_skill_writer.py255 def test_update_regenerates_manifest_and_archives_artifacts(self) -> None:CODE
LOWtests/test_skill_writer.py285 def test_update_accepts_multiple_persona_corrections_in_one_payload(self) -> None:CODE
LOWtests/test_skill_writer.py327 def test_update_replaces_existing_markdown_sections_instead_of_appending_duplicates(self) -> None:CODE
LOWtests/test_skill_writer.py401 def test_backup_and_rollback_include_manifest(self) -> None:CODE
LOWtests/test_skill_writer.py422 def test_version_manager_can_still_resolve_legacy_colleagues_root(self) -> None:CODE
LOWtests/test_skill_writer.py443 def test_character_prompt_bundles_exist(self) -> None:CODE
LOWtests/test_install_claude_generated_skill.py21 def test_install_generated_skill_writes_claude_skill_folder(self) -> None:CODE
LOWtests/test_install_claude_generated_skill.py57 def test_install_generated_skill_can_write_windows_command_shim(self) -> None:CODE
LOWtests/test_install_claude_generated_skill.py92 def test_windows_detection_only_enables_command_shim_on_windows(self) -> None:CODE
LOWtests/test_cli_lifecycle.py40 def test_default_colleague_cli_uses_skills_colleague_root(self) -> None:CODE
LOWtests/test_cli_lifecycle.py81 def test_character_lifecycle_via_cli(self) -> None:CODE
LOWtests/test_cli_lifecycle.py308 def test_cli_can_install_generated_skill_into_supported_host_paths(self) -> None:CODE
LOWtests/test_research_tools.py19 def test_clean_subtitle_text_removes_timestamps_and_duplicates(self) -> None:CODE
LOWtests/test_research_tools.py36 def test_convert_file_writes_transcript(self) -> None:STRING
LOWtests/test_research_tools.py49 def test_merge_research_writes_summary(self) -> None:STRING
LOWtests/test_research_tools.py97 def test_evaluate_skill_text_detects_expected_signals(self) -> None:STRING
LOWtests/test_research_tools.py134 def test_source_grounding_rejects_generic_homepages(self) -> None:STRING
LOWtests/test_research_tools.py163 def test_budget_unfriendly_profile_requires_deeper_research_metrics(self) -> None:STRING
LOWtests/test_research_tools.py215 def test_budget_unfriendly_profile_passes_with_full_review_chain(self) -> None:STRING
LOWtests/test_install_openclaw_and_codex.py21 def test_openclaw_and_codex_repo_installers_copy_repo_layout(self) -> None:CODE
LOWtests/test_install_openclaw_and_codex.py40 def test_openclaw_generated_skill_installer_writes_host_skill_folder(self) -> None:CODE
LOWtests/test_install_openclaw_and_codex.py74 def test_codex_generated_skill_installer_writes_host_skill_folder(self) -> None:CODE
LOWtests/test_install_hermes_skill.py17 def test_install_skill_copies_repo_layout(self) -> None:CODE
LOWtests/test_install_hermes_skill.py30 def test_install_skill_dry_run_does_not_write(self) -> None:CODE
LOWtests/test_install_hermes_skill.py40 def test_install_skill_dry_run_allows_existing_destination(self) -> None:CODE
Cross-Language Confusion8 hits · 38 pts
SeverityFileLineSnippetContext
HIGHtools/feishu_browser.py148 if (cells.length === 0) return null;CODE
HIGHtools/feishu_browser.py164 row.push(grid[r] && grid[r][c] ? grid[r][c] : '');CODE
HIGHtools/feishu_browser.py166 rows.push(row);CODE
HIGHtools/feishu_browser.py264 results.push({{ sender, content, time }});CODE
HIGHtools/feishu_browser.py320 print("错误:请先安装 Playwright:pip install playwright && playwright install chromium", file=sys.stderr)STRING
HIGHtools/dingtalk_auto_collector.py88 print(" pip3 install playwright && playwright install chromium")CODE
HIGHtools/dingtalk_auto_collector.py509 "请运行:pip3 install playwright && playwright install chromium\n"CODE
HIGHtools/dingtalk_auto_collector.py627 results.push({{ sender, content, time }});CODE
Structural Annotation Overuse20 hits · 33 pts
SeverityFileLineSnippetContext
LOWSKILL.md807### Step 0: Confirm the character familyCOMMENT
LOWSKILL.md824### Step 1: Basic Info CollectionCOMMENT
LOWSKILL.md845### Step 2: Source Material ImportCOMMENT
LOWSKILL.md1103### Step 3: Analyze Source MaterialCOMMENT
LOWSKILL.md1276### Step 4: Generate and PreviewCOMMENT
LOWSKILL.md1304### Step 5: Write FilesCOMMENT
LOWtools/feishu_auto_collector.py844 # Step 1: 搜索用户COMMENT
LOWtools/feishu_auto_collector.py850 # Step 2: 采集消息记录COMMENT
LOWtools/feishu_auto_collector.py861 # Step 3: 采集文档COMMENT
LOWtools/slack_auto_collector.py599 # Step 1: 搜索用户COMMENT
LOWtools/slack_auto_collector.py609 # Step 2: 找共同频道COMMENT
LOWtools/slack_auto_collector.py614 # Step 3: 采集消息COMMENT
LOWtools/dingtalk_auto_collector.py687 # Step 1: 搜索用户STRING
LOWtools/dingtalk_auto_collector.py695 # Step 2: 文档STRING
LOWtools/dingtalk_auto_collector.py706 # Step 3: 多维表格STRING
LOWtools/dingtalk_auto_collector.py717 # Step 4: 消息记录(浏览器方案)STRING
LOWprompts/celebrity/persona_builder.md158### Step 1: Classify the QuestionCOMMENT
LOWprompts/celebrity/persona_builder.md164### Step 2: Research DimensionsCOMMENT
LOWprompts/celebrity/persona_builder.md173### Step 3: Apply FrameworkCOMMENT
LOWprompts/celebrity/persona_builder.md178### Step 4: Calibrate ConfidenceCOMMENT
Unused Imports30 hits · 30 pts
SeverityFileLineSnippetContext
LOWtools/install_codex_skill.py4CODE
LOWtools/feishu_auto_collector.py42CODE
LOWtools/version_manager.py9CODE
LOWtools/skill_presets.py9CODE
LOWtools/install_codex_generated_skill.py4CODE
LOWtools/install_generated_skill_common.py4CODE
LOWtools/feishu_mcp_client.py34CODE
LOWtools/feishu_mcp_client.py42CODE
LOWtools/install_hermes_skill.py4CODE
LOWtools/slack_auto_collector.py33CODE
LOWtools/feishu_parser.py19CODE
LOWtools/install_openclaw_generated_skill.py4CODE
LOWtools/feishu_browser.py24CODE
LOWtools/feishu_browser.py28CODE
LOWtools/install_claude_generated_skill.py4CODE
LOWtools/skill_schema.py6CODE
LOWtools/dingtalk_auto_collector.py27CODE
LOWtools/dingtalk_auto_collector.py512CODE
LOWtools/install_openclaw_skill.py4CODE
LOWtools/skill_writer.py9CODE
LOWtools/research/merge_research.py13CODE
LOWtools/research/quality_check.py4CODE
LOWtools/research/srt_to_transcript.py4CODE
LOWtools/research/transcribe_audio.py30CODE
LOWtests/test_skill_writer.py1CODE
LOWtests/test_install_claude_generated_skill.py1CODE
LOWtests/test_cli_lifecycle.py1CODE
LOWtests/test_research_tools.py1CODE
LOWtests/test_install_openclaw_and_codex.py1CODE
LOWtests/test_install_hermes_skill.py1CODE
Excessive Try-Catch Wrapping25 hits · 24 pts
SeverityFileLineSnippetContext
LOWtools/feishu_auto_collector.py858 except Exception as e:CODE
LOWtools/feishu_auto_collector.py869 except Exception as e:CODE
LOWtools/feishu_auto_collector.py463 except Exception:CODE
LOWtools/feishu_auto_collector.py474 except Exception:CODE
LOWtools/feishu_auto_collector.py537 except Exception:CODE
LOWtools/feishu_auto_collector.py548 except Exception:CODE
LOWtools/email_parser.py63 except Exception:CODE
LOWtools/email_parser.py88 except Exception:CODE
LOWtools/email_parser.py97 except Exception:CODE
LOWtools/email_parser.py108 except Exception:CODE
LOWtools/feishu_mcp_client.py203 except Exception:CODE
LOWtools/slack_auto_collector.py625 except Exception as e:CODE
LOWtools/feishu_browser.py64 except Exception as e:CODE
LOWtools/feishu_browser.py105 except Exception:CODE
LOWtools/feishu_browser.py123 except Exception:CODE
LOWtools/feishu_browser.py137 except Exception:CODE
LOWtools/feishu_browser.py206 except Exception as e:STRING
LOWtools/dingtalk_auto_collector.py315 except Exception:CODE
LOWtools/dingtalk_auto_collector.py528 except Exception as e:CODE
LOWtools/dingtalk_auto_collector.py578 except Exception as e:CODE
LOWtools/dingtalk_auto_collector.py703 except Exception as e:STRING
LOWtools/dingtalk_auto_collector.py714 except Exception as e:STRING
LOWtools/dingtalk_auto_collector.py727 except Exception as e:STRING
LOWtools/skill_writer.py411 except Exception:CODE
LOWtools/research/transcribe_audio.py211 except Exception as exc:CODE
Verbosity Indicators10 hits · 15 pts
SeverityFileLineSnippetContext
LOWtools/feishu_auto_collector.py844 # Step 1: 搜索用户COMMENT
LOWtools/feishu_auto_collector.py850 # Step 2: 采集消息记录COMMENT
LOWtools/feishu_auto_collector.py861 # Step 3: 采集文档COMMENT
LOWtools/slack_auto_collector.py599 # Step 1: 搜索用户COMMENT
LOWtools/slack_auto_collector.py609 # Step 2: 找共同频道COMMENT
LOWtools/slack_auto_collector.py614 # Step 3: 采集消息COMMENT
LOWtools/dingtalk_auto_collector.py687 # Step 1: 搜索用户STRING
LOWtools/dingtalk_auto_collector.py695 # Step 2: 文档STRING
LOWtools/dingtalk_auto_collector.py706 # Step 3: 多维表格STRING
LOWtools/dingtalk_auto_collector.py717 # Step 4: 消息记录(浏览器方案)STRING
Deep Nesting16 hits · 14 pts
SeverityFileLineSnippetContext
LOWtools/feishu_auto_collector.py237CODE
LOWtools/feishu_auto_collector.py415CODE
LOWtools/feishu_auto_collector.py486CODE
LOWtools/feishu_auto_collector.py566CODE
LOWtools/feishu_auto_collector.py776CODE
LOWtools/email_parser.py70CODE
LOWtools/feishu_mcp_client.py151CODE
LOWtools/feishu_mcp_client.py255CODE
LOWtools/feishu_browser.py71CODE
LOWtools/feishu_browser.py85CODE
LOWtools/dingtalk_auto_collector.py222CODE
LOWtools/dingtalk_auto_collector.py391CODE
LOWtools/dingtalk_auto_collector.py496CODE
LOWtools/skill_writer.py111CODE
LOWtools/research/merge_research.py40CODE
LOWtests/test_skill_writer.py443CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_research_tools.py107## agentic protocolCOMMENT
MEDIUMtests/test_research_tools.py225## agentic protocolCOMMENT