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. 🫶

11.9 Low AI signal View on GitHub
11.9
Adjusted Score
11.9
Raw Score
100%
Time Factor
2026-05-18
Last Push
18,701
Stars
Python
Language
21,348
Lines of Code
95
Files
170
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 8MEDIUM 28LOW 134

Pattern Findings

170 matches across 7 categories. Click a row to expand file-level details.

Decorative Section Separators28 hits · 82 pts
SeverityFileLineSnippet
MEDIUMtools/feishu_auto_collector.py63# ─── 配置 ────────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py126# ─── Token ───────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py197# ─── 用户搜索 ─────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py365# ─── 消息记录 ─────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py663# ─── 文档采集 ─────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py774# ─── 多维表格 ─────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_auto_collector.py829# ─── 主流程 ───────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_mcp_client.py48# ─── 配置管理 ────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_mcp_client.py90# ─── MCP 调用封装 ─────────────────────────────────────────────────────────────
MEDIUMtools/feishu_mcp_client.py149# ─── 功能函数 ─────────────────────────────────────────────────────────────────
MEDIUMtools/feishu_mcp_client.py253# ─── CLI ─────────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py43# ─── 依赖检查 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py55# ─── 常量 ──────────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py72# ─── 错误类型 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py86# ─── 配置管理 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py156# ─── Slack Client 封装(带速率限制重试)─────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py236# ─── 用户搜索 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py328# ─── 频道发现 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py393# ─── 消息采集 ──────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py490# ─── 主采集流程 ────────────────────────────────────────────────────────────────
MEDIUMtools/slack_auto_collector.py649# ─── CLI 入口 ──────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py49# ─── 配置 ────────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py91# ─── Token ───────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py141# ─── 用户搜索 ─────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py214# ─── 文档采集 ─────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py366# ─── 多维表格 ─────────────────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py482# ─── 消息记录(浏览器方案)────────────────────────────────────────────────────
MEDIUMtools/dingtalk_auto_collector.py670# ─── 主流程 ───────────────────────────────────────────────────────────────────
Hyper-Verbose Identifiers53 hits · 52 pts
SeverityFileLineSnippet
LOWtools/skill_presets.py195def normalize_research_profile(character: str | None, research_profile: str | None) -> str:
LOWtools/skill_presets.py212def get_research_profile_preset(character: str | None, research_profile: str | None = None) -> dict:
LOWtools/skill_presets.py265def resolve_existing_storage_root(
LOWtools/install_generated_skill_common.py52def render_installed_markdown(skill_dir: Path, artifact_name: str, command_name: str) -> str:
LOWtools/slack_auto_collector.py395def fetch_messages_from_channel(
LOWtools/install_openclaw_generated_skill.py12def default_openclaw_skills_dir() -> Path:
LOWtools/feishu_browser.py35def get_default_chrome_profile() -> str:
LOWtools/install_claude_generated_skill.py17def default_claude_skills_dir() -> Path:
LOWtools/install_claude_generated_skill.py22def default_claude_commands_dir() -> Path:
LOWtools/install_claude_generated_skill.py27def should_install_command_shim(system_name: str | None = None) -> bool:
LOWtools/dingtalk_auto_collector.py484def get_default_chrome_profile() -> str:
LOWtools/research/merge_research.py40def collect_structured_section_metrics(text: str) -> dict:
LOWtools/research/merge_research.py77def collect_source_weight_distribution(text: str) -> Counter:
LOWtools/research/merge_research.py106def count_potential_long_quote_lines(text: str) -> int:
LOWtools/research/quality_check.py63def extract_summary_percentage(summary_text: str, label: str) -> int:
LOWtools/research/transcribe_audio.py80def transcribe_with_faster_whisper(audio_path: Path, model_name: str, language: Optional[str]) -> str:
LOWtools/research/transcribe_audio.py116def transcribe_with_openai_whisper(audio_path: Path, model_name: str, language: Optional[str]) -> str:
LOWtools/research/transcribe_audio.py143def transcribe_with_openai_api(audio_path: Path, language: Optional[str]) -> str:
LOWtests/test_skill_entrypoint_docs.py9 def test_root_skill_uses_dot_skill_entrypoint(self) -> None:
LOWtests/test_skill_entrypoint_docs.py41 def test_readme_and_install_use_dot_skill_paths(self) -> None:
LOWtests/test_skill_entrypoint_docs.py70 def test_repo_examples_live_under_skills_colleague(self) -> None:
LOWtests/test_skill_entrypoint_docs.py76 def test_multilingual_readmes_include_dot_skill_and_research_toolchain(self) -> None:
LOWtests/test_skill_writer.py25 def test_create_colleague_keeps_legacy_names_and_adds_engine_schema(self) -> None:
LOWtests/test_skill_writer.py88 def test_create_relationship_uses_character_preset_metadata(self) -> None:
LOWtests/test_skill_writer.py122 def test_create_skill_renders_chinese_chrome_when_language_is_zh_cn(self) -> None:
LOWtests/test_skill_writer.py150 def test_create_celebrity_adds_research_dirs_and_toolchain(self) -> None:
LOWtests/test_skill_writer.py193 def test_create_celebrity_budget_unfriendly_embeds_profile_config(self) -> None:
LOWtests/test_skill_writer.py232 def test_create_celebrity_accepts_string_profile_from_runtime_meta(self) -> None:
LOWtests/test_skill_writer.py255 def test_update_regenerates_manifest_and_archives_artifacts(self) -> None:
LOWtests/test_skill_writer.py285 def test_update_accepts_multiple_persona_corrections_in_one_payload(self) -> None:
LOWtests/test_skill_writer.py327 def test_update_replaces_existing_markdown_sections_instead_of_appending_duplicates(self) -> None:
LOWtests/test_skill_writer.py401 def test_backup_and_rollback_include_manifest(self) -> None:
LOWtests/test_skill_writer.py422 def test_version_manager_can_still_resolve_legacy_colleagues_root(self) -> None:
LOWtests/test_skill_writer.py443 def test_character_prompt_bundles_exist(self) -> None:
LOWtests/test_install_claude_generated_skill.py21 def test_install_generated_skill_writes_claude_skill_folder(self) -> None:
LOWtests/test_install_claude_generated_skill.py57 def test_install_generated_skill_can_write_windows_command_shim(self) -> None:
LOWtests/test_install_claude_generated_skill.py92 def test_windows_detection_only_enables_command_shim_on_windows(self) -> None:
LOWtests/test_cli_lifecycle.py40 def test_default_colleague_cli_uses_skills_colleague_root(self) -> None:
LOWtests/test_cli_lifecycle.py81 def test_character_lifecycle_via_cli(self) -> None:
LOWtests/test_cli_lifecycle.py308 def test_cli_can_install_generated_skill_into_supported_host_paths(self) -> None:
LOWtests/test_research_tools.py19 def test_clean_subtitle_text_removes_timestamps_and_duplicates(self) -> None:
LOWtests/test_research_tools.py36 def test_convert_file_writes_transcript(self) -> None:
LOWtests/test_research_tools.py49 def test_merge_research_writes_summary(self) -> None:
LOWtests/test_research_tools.py97 def test_evaluate_skill_text_detects_expected_signals(self) -> None:
LOWtests/test_research_tools.py134 def test_source_grounding_rejects_generic_homepages(self) -> None:
LOWtests/test_research_tools.py163 def test_budget_unfriendly_profile_requires_deeper_research_metrics(self) -> None:
LOWtests/test_research_tools.py215 def test_budget_unfriendly_profile_passes_with_full_review_chain(self) -> None:
LOWtests/test_install_openclaw_and_codex.py21 def test_openclaw_and_codex_repo_installers_copy_repo_layout(self) -> None:
LOWtests/test_install_openclaw_and_codex.py40 def test_openclaw_generated_skill_installer_writes_host_skill_folder(self) -> None:
LOWtests/test_install_openclaw_and_codex.py74 def test_codex_generated_skill_installer_writes_host_skill_folder(self) -> None:
LOWtests/test_install_hermes_skill.py17 def test_install_skill_copies_repo_layout(self) -> None:
LOWtests/test_install_hermes_skill.py30 def test_install_skill_dry_run_does_not_write(self) -> None:
LOWtests/test_install_hermes_skill.py40 def test_install_skill_dry_run_allows_existing_destination(self) -> None:
Cross-Language Confusion8 hits · 38 pts
SeverityFileLineSnippet
HIGHtools/feishu_browser.py148 if (cells.length === 0) return null;
HIGHtools/feishu_browser.py164 row.push(grid[r] && grid[r][c] ? grid[r][c] : '');
HIGHtools/feishu_browser.py166 rows.push(row);
HIGHtools/feishu_browser.py264 results.push({{ sender, content, time }});
HIGHtools/feishu_browser.py320 print("错误:请先安装 Playwright:pip install playwright && playwright install chromium", file=sys.stderr)
HIGHtools/dingtalk_auto_collector.py88 print(" pip3 install playwright && playwright install chromium")
HIGHtools/dingtalk_auto_collector.py509 "请运行:pip3 install playwright && playwright install chromium\n"
HIGHtools/dingtalk_auto_collector.py627 results.push({{ sender, content, time }});
Unused Imports30 hits · 30 pts
SeverityFileLineSnippet
LOWtools/install_codex_skill.py4
LOWtools/feishu_auto_collector.py42
LOWtools/version_manager.py9
LOWtools/skill_presets.py9
LOWtools/install_codex_generated_skill.py4
LOWtools/install_generated_skill_common.py4
LOWtools/feishu_mcp_client.py34
LOWtools/feishu_mcp_client.py42
LOWtools/install_hermes_skill.py4
LOWtools/slack_auto_collector.py33
LOWtools/feishu_parser.py19
LOWtools/install_openclaw_generated_skill.py4
LOWtools/feishu_browser.py24
LOWtools/feishu_browser.py28
LOWtools/install_claude_generated_skill.py4
LOWtools/skill_schema.py6
LOWtools/dingtalk_auto_collector.py27
LOWtools/dingtalk_auto_collector.py512
LOWtools/install_openclaw_skill.py4
LOWtools/skill_writer.py9
LOWtools/research/merge_research.py13
LOWtools/research/quality_check.py4
LOWtools/research/srt_to_transcript.py4
LOWtools/research/transcribe_audio.py30
LOWtests/test_skill_writer.py1
LOWtests/test_install_claude_generated_skill.py1
LOWtests/test_cli_lifecycle.py1
LOWtests/test_research_tools.py1
LOWtests/test_install_openclaw_and_codex.py1
LOWtests/test_install_hermes_skill.py1
Excessive Try-Catch Wrapping25 hits · 24 pts
SeverityFileLineSnippet
LOWtools/feishu_auto_collector.py858 except Exception as e:
LOWtools/feishu_auto_collector.py869 except Exception as e:
LOWtools/feishu_auto_collector.py463 except Exception:
LOWtools/feishu_auto_collector.py474 except Exception:
LOWtools/feishu_auto_collector.py537 except Exception:
LOWtools/feishu_auto_collector.py548 except Exception:
LOWtools/email_parser.py63 except Exception:
LOWtools/email_parser.py88 except Exception:
LOWtools/email_parser.py97 except Exception:
LOWtools/email_parser.py108 except Exception:
LOWtools/feishu_mcp_client.py203 except Exception:
LOWtools/slack_auto_collector.py625 except Exception as e:
LOWtools/feishu_browser.py64 except Exception as e:
LOWtools/feishu_browser.py105 except Exception:
LOWtools/feishu_browser.py123 except Exception:
LOWtools/feishu_browser.py137 except Exception:
LOWtools/feishu_browser.py206 except Exception as e:
LOWtools/dingtalk_auto_collector.py315 except Exception:
LOWtools/dingtalk_auto_collector.py528 except Exception as e:
LOWtools/dingtalk_auto_collector.py578 except Exception as e:
LOWtools/dingtalk_auto_collector.py703 except Exception as e:
LOWtools/dingtalk_auto_collector.py714 except Exception as e:
LOWtools/dingtalk_auto_collector.py727 except Exception as e:
LOWtools/skill_writer.py411 except Exception:
LOWtools/research/transcribe_audio.py211 except Exception as exc:
Verbosity Indicators10 hits · 15 pts
SeverityFileLineSnippet
LOWtools/feishu_auto_collector.py844 # Step 1: 搜索用户
LOWtools/feishu_auto_collector.py850 # Step 2: 采集消息记录
LOWtools/feishu_auto_collector.py861 # Step 3: 采集文档
LOWtools/slack_auto_collector.py599 # Step 1: 搜索用户
LOWtools/slack_auto_collector.py609 # Step 2: 找共同频道
LOWtools/slack_auto_collector.py614 # Step 3: 采集消息
LOWtools/dingtalk_auto_collector.py687 # Step 1: 搜索用户
LOWtools/dingtalk_auto_collector.py695 # Step 2: 文档
LOWtools/dingtalk_auto_collector.py706 # Step 3: 多维表格
LOWtools/dingtalk_auto_collector.py717 # Step 4: 消息记录(浏览器方案)
Deep Nesting16 hits · 15 pts
SeverityFileLineSnippet
LOWtools/feishu_auto_collector.py237
LOWtools/feishu_auto_collector.py415
LOWtools/feishu_auto_collector.py486
LOWtools/feishu_auto_collector.py566
LOWtools/feishu_auto_collector.py776
LOWtools/email_parser.py70
LOWtools/feishu_mcp_client.py151
LOWtools/feishu_mcp_client.py255
LOWtools/feishu_browser.py71
LOWtools/feishu_browser.py85
LOWtools/dingtalk_auto_collector.py222
LOWtools/dingtalk_auto_collector.py391
LOWtools/dingtalk_auto_collector.py496
LOWtools/skill_writer.py111
LOWtools/research/merge_research.py40
LOWtests/test_skill_writer.py443