bim-classification-ai
Classify BIM elements using AI and standard classification systems. Map elements to UniFormat, MasterFormat, OmniClass, and CWICR codes.
供给资产档案
编程与开发 Agent
代码审查、仓库分析、测试、CI、GitHub、DevOps 与开发工作流 Skill。
场景
编程 Agent
我需要一个能理解仓库、修改代码并审查 Pull Request 的编程 Agent。
适配 Agent
Claude Code + CLI + Codex
适用于 Codex、Claude Code、Cursor、CLI 或自定义 Agent。
安装
就绪
npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-ai
维护状态
新鲜
今天有推送
风险
需审查
The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
GitHub 质量
282
71/100 质量 · 69/100 信任
覆盖标签
审查说明
The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions. · The metadata restricts OS to win32, which may be unnecessarily limiting for a Python-based skill that could work cross-platform.
Agent 采用评分卡
一眼查看信任、审计与安装准备度
这些分数综合公开仓库元数据、OpenAgentSkill 审查信号、维护新鲜度与安装准备度。它用于候选筛选,不替代人工审查。
质量
强可靠的选择,值得加入生产工作流候选列表。
信任
仅限沙盒有用但信任信号不足或混杂的候选项。在结果闭环证明任务匹配前,请保持在隔离工作区内使用。
审计
需审查对安装准备度、安全元数据、维护情况与采用风险的机器可读审查。
OpenAgentSkill 信任评分 v5
安装前需人工审查
仅在沙盒中运行,并在用于真实工作前比较接近的替代方案。
Stars
282 个 GitHub Stars
仓库活跃度
282 个 Star,74 个 Fork
维护状态
今天有推送
许可证
MIT
安装
npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-ai
安装安全性
标准软件包或运行时安装路径
权限范围
Shell 或命令执行、数据库访问
Agent 结果
暂未有 Agent 结果数据
文档
Usable metadata, review docs
风险摘要
生产前审查
- The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
- Quality score needs review
安装准备度
安装路径可用
- 安装路径可用
- 仓库证据可用
- 已声明许可证
- 暂无 Agent 验证结果证据
Agent 可读元数据
这个 Skill 的机器可读决策数据。
使用此区块或内嵌 JSON 判断 Agent 是否应安装该 Skill、选择替代方案,或先请求人工审查。
适用任务
- Browser automation 工作流
- Claude Code 团队
- builders willing to evaluate younger projects
- Navigate pages
适用 Agent
安装决策
- 命令
- npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-ai
- 策略
- 审查
- 人工审查
- 是
信任与风险
- 信任
- 61/100
- 审计
- 78/100
- 风险级别
- 需审查
结果闭环
- 端点
- /api/agent/outcome
- 事件 ID
- resolve
- 结果
- 5
安装命令
npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-ai不适用场景
- 需要厂商支持 SLA 的团队
- production agents without a repository review
- The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
- 暂未有 OpenAgentSkill 使用反馈数据
- 高风险权限提示:Shell 或命令执行
替代 Skill
Code Review
168.6K Stars
npx skills add mattpocock/skills --skill code-review
替代 Skill
Grill With Docs
164.7K Stars
npx skills add mattpocock/skills --skill grill-with-docs
替代 Skill
To Spec
164.7K Stars
npx skills add mattpocock/skills --skill to-spec
替代 Skill
To Tickets
176.7K Stars
npx skills add mattpocock/skills --skill to-tickets
Agent 安全 v2
50/100 · 避免自动安装
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
高
Shell 或命令执行
Skill 元数据引用了终端、CLI、Shell、子进程或命令执行工作流。
中
网络访问
Skill 可能访问远程页面、API、仓库或外部服务。
中
数据库访问
Skill 可能检查 Schema、查询数据库或处理持久化存储。
- 高风险权限提示:Shell 或命令执行
- The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
安装目标
在你的 Agent 工作流中安装此 Skill
通过公开安装端点获取命令、安全清单、目标提示词和该 Skill 的规范链接。
OpenAgentSkill CLI
Resolve policy, run the source installer safely, and report a verified install receipt.
$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install datadrivenconstruction-bim-classification-aiAgent 解析计划
让 Agent 在安装前验证匹配度。
Resolve API 返回首选 Skill、替代方案、安全策略、审计说明、安装目标和可直接执行的提示词,无需抓取此页面。
打开 JSON
/api/agent/resolve?task=Use%20bim-classification-ai%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve 文本
/api/agent/resolve?task=Use%20bim-classification-ai%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
安装交接
/api/skills/datadrivenconstruction-bim-classification-ai/install
Agent 应检查
- 从 Resolve API 检查任务匹配与替代方案。
- 检查审计评分、信任评分和安全策略警告。
- 检查 Codex、Claude Code、Cursor 或 CLI 的安装目标兼容性。
复制提示词
Task: Use bim-classification-ai in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20bim-classification-ai%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/datadrivenconstruction-bim-classification-ai/install
Install command: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-ai
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent 交接
把安装路径交给 Agent,而不是再给一个目录页。
通过公开安装端点获取命令、安全清单、目标提示词和该 Skill 的规范链接。
安装交接
/api/skills/datadrivenconstruction-bim-classification-ai/install
LLM 文本格式
/api/skills/datadrivenconstruction-bim-classification-ai/install?format=text
寻找替代方案
/api/skills/search?q=bim-classification-ai&limit=3
Agent 提示词
Use bim-classification-ai for this task. Review https://www.openagentskill.com/api/skills/datadrivenconstruction-bim-classification-ai/install, then install with: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill bim-classification-aiRegistry 元数据
用于自动选择 Skill 的 Agent 可读档案。
本页通过 Registry API 提供相同的决策、信任、审计、场景和安装信号,让 Agent 无需抓取界面即可排序。
Manifest
/api/registry/manifest/datadrivenconstruction-bim-classification-ai
LLM 文本
/api/registry/manifest/datadrivenconstruction-bim-classification-ai?format=text
安装别名
/api/registry/install/datadrivenconstruction-bim-classification-ai
推荐
/api/registry/recommend?task=Use%20bim-classification-ai%20in%20an%20agent%20workflow&limit=3
Agent 决策面板
Fallback candidate for Browser automation
先用此 Skill 做原型验证,并保留备选方案。
栈中角色
备选候选
主要匹配
Browser automation
信任标签
先做原型验证
安装路径
命令已就绪
适用场景
- Browser automation 工作流
- Claude Code 团队
- builders willing to evaluate younger projects
证据
- 仓库近期活跃
- 已提供安装命令或 GitHub 仓库
- 71/100 质量档案
先审查
- The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
- 暂未有 OpenAgentSkill 使用反馈数据
实施路径
- 1在沙盒 Agent 中安装它,并端到端完成一次Browser automation任务。
- 2Compare output quality, latency, and failure behavior against at least one alternative.
- 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.
信任档案
仅限沙盒
有用但信任信号不足或混杂的候选项。在结果闭环证明任务匹配前,请保持在隔离工作区内使用。
GitHub 采用度
信息282 个 GitHub Stars
Star/Fork 活跃度
信息282 个 Star,74 个 Fork; 当前元数据中没有议题活跃度信息
近期维护
通过今天有推送
许可证清晰度
通过MIT
积极信号
- AI 审查已通过
- 安装路径可用
- 仓库证据可用
- 近期维护的仓库
- 安装命令未发现明显高风险模式
- 结果闭环已就绪,但需要首次真实 Agent 运行
安装前审查
- The skill declares only python3 as a required binary, but the implementation uses pandas (import pandas as pd). This dependency is not declared in metadata or setup instructions.
- Quality score needs review
- 暂未有真实 Agent 结果报告
- 无人值守安装前需要人工审查
建议操作
仅在沙盒中运行,并在用于真实工作前比较接近的替代方案。
质量档案
强 适用于 Agent 工作流的候选
可靠的选择,值得加入生产工作流候选列表。
工作流匹配
在这些场景使用此 Skill
Operate web apps
Browser automation
I need my agent to control a browser, fill forms, and verify web app workflows.
Build and ship code
Coding agents
I need a coding agent that can understand a repository, edit code, and review pull requests.
Automate repeated work
Workflow automation
I need my agent to automate a repeated workflow across tools and files.
工作流匹配
加入完整工作流
Operate and verify web apps
Browser QA agent
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Turn skills into distribution
Content growth agent
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Inspect, patch, and verify code
Coding review agent
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
替代方案短名单
安装前对比
可能适合该任务的相近 Skill。
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Grill With Docs
A relentless interview that pressure-tests a plan against the codebase, sharpens domain language, and updates CONTEXT.md and ADRs when decisions become durable.
To Spec
Turn the current conversation and codebase context into a structured implementation spec, then publish it to the configured project issue tracker.
To Tickets
Break a plan, spec, or conversation into independently actionable tracer-bullet tickets with explicit blocking relationships.
概览
--- name: "bim-classification-ai" description: "Classify BIM elements using AI and standard classification systems. Map elements to UniFormat, MasterFormat, OmniClass, and CWICR codes." homepage: "https://datadrivenconstruction.io" metadata: {"openclaw": {"emoji": "🔍", "os": ["win32"], "homepage": "https://datadrivenconstruction.io", "requires": {"bins": ["python3"]}}} --- # BIM Classification AI
## Business Case
### Problem Statement BIM models often lack proper classification: - Elements without classification codes - Inconsistent naming conventions - Manual classification is tedious - Difficult to map to cost databases
### Solution AI-powered classification system that analyzes BIM element properties and suggests appropriate classification codes from multiple standards.
### Business Value - **Automation** - Reduce manual classification effort - **Consistency** - Standardized classification across projects - **Integration** - Enable cost estimation and QTO - **Quality** - Improved data quality in BIM models
## Technical Implementation
```python import pandas as pd from typing import Dict, Any, List, Optional, Tuple from dataclasses import dataclass, field from enum import Enum import re
class ClassificationSystem(Enum): """Classification standards.""" UNIFORMAT = "uniformat" MASTERFORMAT = "masterformat" OMNICLASS = "omniclass" UNICLASS = "uniclass" CWICR = "cwicr"
@dataclass class ClassificationCode: """Classification code with metadata.""" code: str title: str system: ClassificationSystem level: int parent_code: Optional[str] = None keywords: List[str] = field(default_factory=list)
@dataclass class ClassificationResult: """Result of classification attempt.""" element_id: str element_name: str element_category: str suggested_codes: List[Tuple[ClassificationCode, float]] # (code, confidence) selected_code: Optional[ClassificationCode] = None manual_override: bool = False
class ClassificationDatabase: """Classification codes database."""
def __init__(self): self.codes: Dict[ClassificationSystem, List[ClassificationCode]] = { system: [] for system in ClassificationSystem } self._load_standard_codes()
def _load_standard_codes(self): """Load standard classification codes.""" # UniFormat II codes uniformat_codes = [ ("A", "Substructure", 1, None, ["foundation", "basement", "excavation"]), ("A10", "Foundations", 2, "A", ["footing", "pile", "foundation"]), ("A1010", "Standard Foundations", 3, "A10", ["spread footing", "strip footing"]), ("A1020", "Special Foundations", 3, "A10", ["pile", "caisson", "mat foundation"]), ("B", "Shell", 1, None, ["superstructure", "exterior", "roof"]), ("B10", "Superstructure", 2, "B", ["floor", "roof", "structure"]), ("B1010", "Floor Construction", 3, "B10", ["slab", "deck", "floor"]), ("B1020", "Roof Construction", 3, "B10", ["roof", "deck", "truss"]), ("B20", "Exterior Enclosure", 2, "B", ["wall", "window", "door"]), ("B2010", "Exterior Walls", 3, "B20", ["curtain wall", "masonry", "cladding"]), ("B2020", "Exterior Windows", 3, "B20", ["window", "glazing", "storefront"]), ("B30", "Roofing", 2, "B", ["roof", "membrane", "insulation"]), ("C", "Interiors", 1, None, ["partition", "ceiling", "floor finish"]), ("C10", "Interior Construction", 2, "C", ["partition", "door", "glazing"]), ("C20", "Stairs", 2, "C", ["stair", "railing", "ladder"]), ("C30", "Interior Finishes", 2, "C", ["finish", "paint", "flooring"]), ("D", "Services", 1, None, ["mechanical", "electrical", "plumbing"]), ("D10", "Conveying", 2, "D", ["elevator", "escalator", "lift"]), ("D20", "Plumbing", 2, "D", ["pipe", "fixture", "drain"]), ("D30", "HVAC", 2, "D", ["duct", "hvac", "air handling"]), ("D40", "Fire Protection", 2, "D", ["sprinkler", "fire", "suppression"]), ("D50", "Electrical", 2, "D", ["electrical", "power", "lighting"]), ]
for code, title, level, parent, keywords in uniformat_codes: self.codes[ClassificationSystem.UNIFORMAT].append( ClassificationCode(code, title, ClassificationSystem.UNIFORMAT, level, parent, keywords) )
# MasterFormat codes (simplified) masterformat_codes = [ ("03", "Concrete", 1, None, ["concrete", "formwork", "reinforcing"]), ("03 30 00", "Cast-in-Place Concrete", 2, "03", ["concrete", "pour", "slab"]), ("03 41 00", "Precast Structural Concrete", 2, "03", ["precast", "concrete", "panel"]), ("04", "Masonry", 1, None, ["brick", "block", "stone"]), ("05", "Metals", 1, None, ["steel", "metal", "aluminum"]), ("05 12 00", "Structural Steel Framing", 2, "05", ["beam", "column", "steel"]), ("06", "Wood, Plastics, Composites", 1, None, ["wood", "timber", "lumber"]), ("07", "Thermal and Moisture Protection", 1, None, ["insulation", "roofing", "waterproofing"]), ("08", "Openings", 1, None, ["door", "window", "glazing"]), ("09", "Finishes", 1, None, ["drywall", "paint", "flooring"]), ("21", "Fire Suppression", 1, None, ["sprinkler", "fire", "suppression"]), ("22", "Plumbing", 1, None, ["pipe", "fixture", "plumbing"]), ("23", "HVAC", 1, None, ["hvac", "duct", "mechanical"]), ("26", "Electrical", 1, None, ["electrical", "power", "lighting"]), ]
for code, title, level, parent, keywords in masterformat_codes: self.codes[ClassificationSystem.MASTERFORMAT].append( ClassificationCode(code, title, ClassificationSystem.MASTERFORMAT, level, parent, keywords) )
def search(self, query: str, system: ClassificationSystem = None) -> List[ClassificationCode]: """Search classification codes by keyword.""" results = [] query_lower = query.lower()
systems = [system] if system else list(ClassificationSystem)
for sys in systems: for code in self.codes.get(sys, []): # Check title if query_lower in code.title.lower(): results.append(code) continue # Check keywords if any(query_lower in kw.lower() for kw in code.keywords): results.append(code)
return results
class BIMClassificationAI: """AI-powered BIM element classification."""
def __init__(self, classification_db: ClassificationDatabase = None): self.db = classification_db or ClassificationDatabase() self.category_mappings = self._load_category_mappings() self.results: List[ClassificationResult] = []
def _load_category_mappings(self) -> Dict[str, List[str]]: """Load Revit/IFC category to classification mappings.""" return { # Structural "Structural Columns": ["B10", "05 12 00", "column", "structural"], "Structural Framing": ["B10", "05 12 00", "beam", "framing"], "Structural Foundations": ["A10", "03 30 00", "foundation", "footing"], "Floors": ["B1010", "03 30 00", "floor", "slab"], # Architectural "Walls": ["B20", "04", "wall", "partition"], "Curtain Walls": ["B2010", "08 44 00", "curtain wall", "glazing"], "Windows": ["B2020", "08 50 00", "window", "glazing"], "Doors": ["C10", "08 10 00", "door", "opening"], "Roofs": ["B30", "07 50 00", "roof", "roofing"], "Ceilings": ["C30", "09 51 00", "ceiling", "finish"], "Stairs": ["C20", "05 51 00", "stair", "railing"], # MEP "Ducts": ["D30", "23 31 00", "duct", "hvac"], "Pipes": ["D20", "22 11 00", "pipe", "plumbing"], "Electrical Equipment": ["D50", "26 20 00", "electrical", "panel"], "Lighting Fixtures": ["D50", "26 51 00", "light", "fixture"], "Sprinklers": ["D40", "21 13 00", "sprinkler", "fire protection"], "Mechanical Equipment": ["D30", "23 70 00", "ahu", "hvac equipment"], }
def classify_element(self, element_id: str, element_name: str, category: str, properties: Dict[str, Any] = None, target_systems: List[ClassificationSystem] = None) -> ClassificationResult: """Classify a single BIM element."""
target_systems = target_systems or [ClassificationSystem.UNIFORMAT, ClassificationSystem.MASTERFORMAT] suggestions = []
# Get keywords from category mapping keywords = self.category_mappings.get(category, [])
# Add keywords from element name name_words = re.findall(r'\w+', element_name.lower()) keywords.extend(name_words)
# Add keywords from properties if properties: for key, value in properties.items(): if isinstance(value, str): keywords.extend(re.findall(r'\w+', value.lower()))
# Search classification codes for system in target_systems: for keyword in keywords: matches = self.db.search(keyword, system) for match in matches: confidence = self._calculate_confidence(match, keywords, category) suggestions.append((match, confidence))
# Remove duplicates and sort by confidence seen = set() unique_suggestions = [] for code, conf in sorted(suggestions, key=lambda x: x[1], reverse=True): if code.code not in seen: seen.add(code.code) unique_suggestions.append((code, conf))
result = ClassificationResult( element_id=element_id, element_name=element_name, element_category=category, suggested_codes=unique_suggestions[:5], selected_code=unique_suggestions[0][0] if unique_suggestions else None )
self.results.append(result) return result
def _calculate_confidence(self, code: ClassificationCode, keywords: List[str], category: str) -> float: """Calculate classification confidence score.""" score = 0.0
# Direct category match if category in self.category_mappings: if code.code in self.category_mappings[category]: score += 0.5
# Keyword matches keyword_matches = sum(1 for kw in keywords if kw.lower() in [k.lower() for k in code.keywords]) score += min(keyword_matches * 0.1, 0.3)
# Title match title_words = code.title.lower().split() title_matches = sum(1 for kw in keywords if kw.lower() in title_words) score += min(title_matches * 0.1, 0.2)
return min(score, 1.0)
def classify_batch(self, elements_df: pd.DataFrame, id_column: str = 'element_id', name_column: str = 'name', category_column: str = 'category') -> pd.DataFrame: """Classify multiple elements from DataFrame."""
results = [] for _, row in elements_df.iterrows(): result = self.classify_element( element_id=str(row[id_column]), element_name=str(row[name_column]), category=str(row[category_column]), properties=row.to_dict() )
results.append({ 'element_id': result.element_id, 'element_name': result.element_name,
技术详情
- 版本
- 1.0.0
- 许可证
- MIT
- 最近更新
- 2026年8月22日
- 发布时间
- 2026年8月22日
决策摘要
备选候选
仓库近期活跃
Agent 验证证据
Agent 验证证据
来自解析、审查、安装和一次小范围运行后的结果报告。
- 成功率
- —
- 近期失败
- —
- 结果
- 0
- 输出质量
- —
- 失败
- 0
- 不相关
- 0
- 安装次数
- 0
- 风险拦截
- 0
- 需要配置
- 0
- 生产环境
- 0
暂时没有 Agent 结果数据。首次 Agent 执行可以通过 /api/agent/outcome 报告成功、需要设置、风险拦截、失败或不相关。
增长闭环
分享工具包
为 bim-classification-ai 准备的场景化草稿,可手动发布到 X。
bim-classification-ai: Classify BIM elements using AI and standard classification systems. Map elements to UniFormat... 282 stars https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai?ref=x
可选:带安装命令的回复
Listing + install path for bim-classification-ai: https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai?ref=x Install: npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --...
收录来源
Registry 收录
此列表来自公开来源,维护者认领获批前不会标记为官方。
- 收录方
- OpenAgentSkill 社区索引
归属链接指向公开仓库或创作者主页。创作者可认领列表以更新所有权信号。
认领此 Skill所有者认领
认领此 Skill 页面
这条 Registry 收录 列表归属于 datadrivenconstruction,但尚未标记为官方。认领后可增加已验证所有者信号,使后续发布、安装和审计更新更值得信赖。
创作者外链工具包
将证据徽章加入你的 README
在开发者评估仓库的位置展示规范页面、当前信任与审计信号,以及真实的 Agent 验证证据。
[](https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai)
[](https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai)
[](https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai/audit)
[](https://www.openagentskill.com/skills/datadrivenconstruction-bim-classification-ai)作者
datadrivenconstruction
@datadrivenconstruction
平台适配
健康信号
- GitHub Stars
- 282
- 质量评分
- 40/100
- 最近 GitHub 推送
- 2026年8月22日
- 框架提示
- 未知
- OpenAgentSkill 浏览量
- 0
- 复制安装命令
- 0
- 跳转点击
- 0
社区信号
告诉我们这个 Skill 是否对你的 Agent 工作流有帮助。汇总反馈会持续改善排序。
信任与安全
仅限沙盒
- GitHub 采用度282 个 GitHub Stars信息
- Star/Fork 活跃度282 个 Star,74 个 Fork; 当前元数据中没有议题活跃度信息信息
- 近期维护今天有推送通过
- 许可证清晰度MIT通过
- README/SKILL.md 完整度公开元数据需要更完整的 README/SKILL.md 上下文信息
- 依赖与运行时风险command execution surface, database surface信息
相关 Skill
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsGrill With Docs
A relentless interview that pressure-tests a plan against the codebase, sharpens domain language, and updates CONTEXT.md and ADRs when decisions become durable.
164.7K StarsTo Spec
Turn the current conversation and codebase context into a structured implementation spec, then publish it to the configured project issue tracker.
164.7K StarsTo Tickets
Break a plan, spec, or conversation into independently actionable tracer-bullet tickets with explicit blocking relationships.
176.7K Stars