Skip to main content

project-tech-eval

Evaluate technical architecture, code quality, dependencies, and platform fit of an OSS project

설치로 이동

소스 정보

저장소
redhat-et/physical-ai-platform-intel
최근 소스 활동
2026년 6월 22일 21:34
감지된 SKILL.md 언어
영어
스타
1
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
7 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
project-tech-eval
description
Evaluate technical architecture, code quality, dependencies, and platform fit of an OSS project
user-invocable
true
argument-hint
<github-url | project-url | project-name>
# Project Technical Evaluator Evaluate the technical architecture, code quality, dependency health, security posture, and Red Hat platform fit of an open-source project. Assesses opportunities and risks for potential contribution, integration, or downstreaming. ## Usage ```text /project-tech-eval https://github.com/newton-physics/newton /project-tech-eval https://ros.org /project-tech-eval "Isaac Lab" ``` ## Input Same input types and `--single-repo` flag as `project-health-eval`. See that skill for full details on repo discovery and classification (Core / Ecosystem / Peripheral / Upstream-downstream). If `project-health-eval` has already run, reuse its repo scoping from the existing report rather than rediscovering. If running standalone, perform the same discovery process. ## Output Populates **Part B (Technical Analysis)** of the project report at `deliverables/intel/projects/{project}.md`. If a report already exists (from `project-health-eval`), updates Part B in place. If no report exists, creates one with Part B filled and Part A marked `<!-- TODO: run project-health-eval -->`. Also populates the **Red Hat Platform Fit Assessment** section and **Executive Summary** (since the summary requires both Part A and Part B — updates it if Part A is already present). ## Report Organization - **One report per project** in `deliverables/intel/projects/`, flat folder (no subfolders by block) - **Multi-block projects** (e.g., Genesis World = Simulation Engines + Synthetic Data Generation): one report, list all building blocks in Project Identity - **Cross-project dependencies**: fill `Depends on` and `Depended on by` in Project Identity when a project requires or is required by another evaluated project. Format: `[Project Name](sibling-report.md) — role description` - **Separate layered projects**: if a project is really two distinct tools at different layers (e.g., Isaac Lab is a learning framework on top of Isaac Sim the simulator), write separate reports. Each gets its own building block, competitor set, and dependency cross-link ## Shared Workspace Both `project-health-eval` and `project-tech-eval` use a shared workspace for cloned repos: ```text deliverables/intel/.workspace/repos/{project-name}/ ``` - This directory is gitignored (under `deliverables/intel/`) - On first run: `git clone` (shallow for large repos, full for small ones) - On subsequent runs: `git pull` to pick up changes since last evaluation - Repos persist between runs — no re-cloning on every invocation - For multi-repo projects, each repo gets its own subdirectory: `deliverables/intel/.workspace/repos/{project-name}/{repo-name}/` ## Process ### Step 1: Resolve repos and clone/update - If a project report already exists at `deliverables/intel/projects/{project}.md`, read its **Repos analyzed** field to reuse the scoping from `project-health-eval` - Otherwise, perform the same discovery process as `project-health-eval` Step 1 (scope and discover) - Check if `deliverables/intel/.workspace/repos/{project}/` exists - If exists: `git pull` and note what changed since last eval - If new: `git clone --depth=100` (enough history for churn analysis) ### Step 2: Run analysis scripts Execute scripts from `.claude/skills/project-tech-eval/scripts/` against the cloned repo. Each script outputs structured JSON or markdown fragments. | Script | What it produces | | --- | --- | | `dep-tree.sh` | Dependency tree (pip/npm/go/cargo), transitive dep count, **Libyears** (CHAOSS metric) | | `license-scan.sh` | Licenses of all direct and key transitive dependencies, copyleft/unknown risk flags | | `security-scan.sh` | Known CVEs via osv-scanner, grype, or ecosystem tools (pip-audit, npm audit, govulncheck) | | `code-metrics.sh` | LOC by language, TODO/FIXME density, churn hotspots, lint/format config, code review signal | | `build-check.sh` | Build system detection, containerization (Dockerfile, Helm, Kustomize), reproducibility, GPU support signals | | `test-check.sh` | Test framework detection, coverage config, CI test matrix, property testing, benchmarks | Scripts are best-effort — they handle missing tools gracefully and report what they could and couldn't analyze. ### Step 3: Architecture analysis Read the codebase structure and documentation to understand: - **Major subsystems**: What are the top-level modules/packages? What does each do? - **Data flow**: How do components communicate? (APIs, message passing, shared state) - **Extension model**: How do users extend the project? (plugin API, SDK, configuration, forking) - **Key dependencies**: Which large external projects does it depend on? (PyTorch, K8s, ROS 2, etc.) - **Runtime requirements**: What must be present? (specific GPUs, cloud services, proprietary runtimes) ### Step 3b: Capabilities & positioning assessment Assess the project's functional capabilities, lock-in risk, and production adoption: - **Capabilities**: Extract key functional capabilities from documentation, README, feature lists, and architecture analysis. Focus on what distinguishes this project from competitors in the same building block. List as a table of capability + detail. - **Lock-in**: Assess on 3 dimensions, each rated Low / Medium / High: - **Hardware**: GPU/accelerator dependency (e.g., "CUDA-only" vs "CUDA + ROCm + Metal") - **Vendor**: Who controls critical code paths, forks, or compiler dependencies? - **Ecosystem**: Data format lock-in, platform gravity, migration cost (e.g., "MJCF is open XML, widely supported" or "58K datasets on HF Hub create switching cost") - **Production adoption**: WebSearch for "who uses {project}", case studies, conference talks, production deployment blog posts. List notable companies and how they use it. ### Step 4: Evaluate dimensions Rate each dimension using controlled vocabulary: | Dimension | Ratings | How to assess | | --- | --- | --- | | **Architecture clarity** | Clear / Adequate / Tangled | Modular boundaries, documented interfaces, separation of concerns | | **Tech stack alignment** | Aligned / Neutral / Misaligned | vs Red Hat choices: K8s-native, PyTorch-based, container-friendly, Linux-first | | **Dependency health** | Healthy / Watch / Risky | Transitive dep count, single-maintainer deps, abandoned deps, CVEs | | **Test coverage** | Strong / Adequate / Weak | Coverage %, CI setup, test types (unit/integration/e2e) | | **Security posture** | Strong / Adequate / Weak | OpenSSF score, CVE history, security policy, SBOM, signed releases | | **Code quality signals** | Strong / Adequate / Weak | Churn hotspots, TODO density, lint/format enforcement, code review practice | | **Extensibility** | Plugin API / SDK / Forkable / Monolithic | How users add functionality | | **Hardware portability** | Portable / Limited / Locked | Multi-GPU-vendor? Multi-platform? CUDA-only? | ### Step 5: Platform fit assessment Assess alignment with Red Hat's technology stack and contribution model: **Alignment signals** — things that make adoption easy: - License compatible with downstream redistribution (Apache 2.0, BSD, MIT) - K8s-native deployment, runs on OpenShift without modification - PyTorch-based (aligns with RHOAI training stack) - Container-friendly build and deployment - No CLA or a DCO-only contribution model - Active, diverse maintainer community **Risk signals** — things that make adoption problematic: - CUDA-only GPU backend (no ROCm, no CPU fallback) - CLA required (limits Red Hat contribution) - Core maintainers employed by a single competitor - Proprietary runtime dependency (e.g., Omniverse Kit SDK) - Unstable API, frequent breaking changes - Supply chain risks (single-maintainer transitive deps, known CVEs, license conflicts) **Supply chain assessment** — from script outputs: - License conflicts in transitive dependency tree - Known CVEs and their severity - Single-maintainer critical dependencies ### Step 6: Write report Fill Part B of the project report template (including Capabilities & Positioning, Lock-in Assessment, and Production Adoption sections), plus Red Hat Platform Fit Assessment. **Executive Summary fields this skill fills:** - **What it is**: 1-sentence description (if not already filled by project-health-eval) - **Technical verdict**: Strong / Adequate / Concerning + rationale - **Red Hat fit**: Align / Neutral / Misalign + rationale **Executive Summary fields this skill must NOT fill:** - **Health verdict**: owned by project-health-eval - **Recommendation**: owned by project-comparison or manual assessment. Leave as template placeholder. **Naming rules**: same as project-health-eval — use "Product (Vendor)" format for all entity references. ### Step 7: Validation - [ ] All scorecard dimensions rated using controlled vocabulary - [ ] Architecture overview captures major subsystems and key dependencies - [ ] Script outputs referenced (not just LLM impression) - [ ] Red Hat fit assessment addresses both alignment and risk signals - [ ] Supply chain assessment includes license, CVE, and bus-factor findings - [ ] **No ambiguous names**: every entity uses "Product (Vendor)" format - [ ] **Field ownership respected**: Recommendation field not filled; Health verdict not filled - [ ] Cross-links to company profiles where the project is a product of a tracked company ## Scripts Scripts live in `.claude/skills/project-tech-eval/scripts/`. They are shell scripts that: - Accept a repo path as the first argument - Output structured data (JSON preferred, markdown fallback) - Handle missing tools gracefully (e.g., if `osv-scanner` isn't installed, report that and skip) - Run without network access except for CVE database lookups - Are idempotent and fast ### Script development guidelines - Keep scripts simple — they extract data, not analyze it. Analysis is the LLM's job. - Support common ecosystems: Python (pip/pyproject.toml), Node (package.json), Go (go.mod), Rust (Cargo.toml), C++ (CMakeLists.txt/Bazel) - Output a `"status": "ok" | "partial" | "skipped"` field so the LLM knows what succeeded
GitHub에서 보기