{"data":{"skill":{"slug":"carl-312-ai-architect-lite","name":"ai-architect-lite","icon":"📦","repo":"https://github.com/Carl-312/devlog-starter/tree/main/","status":"approved","author":"Carl-312","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"1819d2b3-f0b4-4581-9c35-6ecc80ec1a3d","skill_id":"6a227c50-84f8-44a3-a661-d73773382854","version":9,"content_hash":"v3:bdc4c7c6e1e64de0e81902bd9656da84164bdaf7:1f62b23510599b4941527fdae6f7a4157b6ecb105a17e8e3200115f06b656213:5fe504d77cdcada4c6fd1ac22d69fa28764698b3b912fc23b02f179ee3dd37b4:736b696c6c732f6361726c2d3331322f61692d6172636869746563742d6c697465:d57ca77ac6533f2ee27f1e43d9829f17","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 32 static findings are false positives or documentation-only references. The skill is readable Markdown and does not contain bundled executable scripts, network requests, secret access, or prompt-injection language. It does instruct assistants to run project-local helper scripts, so users should inspect those scripts before execution.","remediation":[{"issue":"The workflow recommends running project-local Python scripts without a trust check.","severity":"medium","suggestion":"Require users to inspect the script path, review its contents, and obtain confirmation before running it in an untrusted repository."},{"issue":"The documentation references scripts and resources that are absent from the scanned package.","severity":"low","suggestion":"Bundle the referenced files or remove the commands and clearly label them as optional external integrations."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"README.md","line_end":164,"line_start":164}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":7,"line_start":7},{"file":"SKILL.md","line_end":10,"line_start":10},{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":24,"line_start":24},{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":27,"line_start":27},{"file":"SKILL.md","line_end":36,"line_start":30},{"file":"SKILL.md","line_end":39,"line_start":36},{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":41,"line_start":40},{"file":"SKILL.md","line_end":42,"line_start":41},{"file":"SKILL.md","line_end":43,"line_start":42},{"file":"SKILL.md","line_end":46,"line_start":43},{"file":"SKILL.md","line_end":51,"line_start":46}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":24,"line_start":24},{"file":"SKILL.md","line_end":16,"line_start":16}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Unverified Project-Local Script Execution Guidance","locations":[{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":25,"line_start":25}],"confidence":0.82,"description":"The workflow recommends running Python entry points located in the target project, but it does not require inspecting them first. A malicious or untrusted repository could place arbitrary code at those paths.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The instructions explicitly name project-local Python entry points and present them as workflow actions. The Markdown does not show their contents or mandate a trust check."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":7,"total_lines":538,"audit_model":"claude","audited_at":"2026-07-17T10:50:59.864+00:00","created_at":"2026-07-17T15:43:02.174156+00:00","static_findings":[{"id":"sensitive:.gitignore:49:environment-file-access","file":".gitignore","pattern":"Environment file access","snippet":".env","category":"sensitive","line_end":49,"severity":"high","line_start":49},{"id":"sensitive:.gitignore:50:environment-file-access","file":".gitignore","pattern":"Environment file access","snippet":".env.local","category":"sensitive","line_end":50,"severity":"high","line_start":50},{"id":"sensitive:.gitignore:50:environment-variant-files","file":".gitignore","pattern":"Environment variant files","snippet":".env.local","category":"sensitive","line_end":50,"severity":"high","line_start":50},{"id":"sensitive:.gitignore:52:credential-json-file","file":".gitignore","pattern":"Credential JSON file","snippet":"credentials.json","category":"sensitive","line_end":52,"severity":"high","line_start":52},{"id":"sensitive:.gitignore:51:secrets-file","file":".gitignore","pattern":"Secrets file","snippet":"secrets.json","category":"sensitive","line_end":51,"severity":"high","line_start":51},{"id":"sensitive:.gitignore:53:certificate-key-files","file":".gitignore","pattern":"Certificate/key files","snippet":"*.key","category":"sensitive","line_end":53,"severity":"high","line_start":53},{"id":"sensitive:.gitignore:54:certificate-key-files","file":".gitignore","pattern":"Certificate/key files","snippet":"*.pem","category":"sensitive","line_end":54,"severity":"high","line_start":54},{"id":"network:README.md:164:python-http-libraries","file":"README.md","pattern":"Python HTTP libraries","snippet":"Contributions are welcome! Please feel free to submit issues or pull requests.","category":"network","line_end":164,"severity":"low","line_start":164},{"id":"sensitive:SECURITY.md:35:environment-file-access","file":"SECURITY.md","pattern":"Environment file access","snippet":"- Commit `.env` files or secrets","category":"sensitive","line_end":35,"severity":"high","line_start":35},{"id":"external_commands:SKILL.md:7:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> 精简版「AI Architecture」:保留 `.ai_context` 记忆协议与 manifest 驱动调度,服务轻量项目或快速移植场景。","category":"external_commands","line_end":7,"severity":"medium","line_start":7},{"id":"external_commands:SKILL.md:10:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- 新建/迁移仓库,希望用最小开销引入 `.ai_context` + slash-first 调度。","category":"external_commands","line_end":10,"severity":"medium","line_start":10},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. 解析路径:`PROJECT_ROOT` = 当前仓库;`TOOLKIT_PATH` = 本技能所在目录(用于引用资源)。","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. 检查 `PROJECT_ROOT/.ai_context/03_ACTIVE_TASK.md`;缺失则按 `references/lite-protocol.md` 模板创建或运行 `pytho","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. 阅读 `03_ACTIVE_TASK.md` 获取 Current Mission;若存在 `01/02` 则作为补充规则加载,不强制解析全部细节。","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. 查看 `.ai-manifest.json`:优先使用 `commands` 中的 slash 触发;若无 `cognitive_skills` 配置,则保持纯命令模式。","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- 新手护栏:若拿不准流程,先快速浏览 `references/superpowers-lite.md`,按其“迷你 TDD”“快速执行模板”走一遍。","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- 仅本技能加载时的默认动作:先输出友好欢迎语,告诉用户你已启用 AI Architect Lite,并给出 3 个可选下一步(如:1 生成迷你计划 `python scripts/plan_help","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **迷你流程(面向新手)**:用 3 步走完——1 写目标/约束/<=5 步计划(可直接在回答里列出,或运行 `python scripts/plan_helper.py --goal \\\"...","category":"external_commands","line_end":24,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **日志写入**:优先运行 `python scripts/append_log.py --note \"...\" --action \"...\" --changes \"...\" --outcome ","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **范围与安全**:仅操作 `PROJECT_ROOT`;执行前用中文说明修改/命令目的与影响,避免写入密钥。","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **上下文收敛**:长文档/规范放入 `references/`,按需加载;核心指令保持在本文件。","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":36,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":39,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/lite-protocol.md`:`.ai_context` 最小规范、开发日志模板、slash-first 调度要点。","category":"external_commands","line_end":39,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/superpowers-lite.md`:超能力精简卡,涵盖迷你 TDD、系统化调试和透明协作的最小做法。","category":"external_commands","line_end":41,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `scripts/append_log.py`:为新手准备的最小日志脚本,自动建文件并按模板追加;可作为示例扩展。","category":"external_commands","line_end":42,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `scripts/plan_helper.py`:生成目标/约束/步骤/验证的极简计划模板,默认输出到终端,避免额外文件。","category":"external_commands","line_end":43,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `assets/`:保留占位,用于未来模板/示例;当前无需加载到上下文。","category":"external_commands","line_end":46,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```markdown","category":"external_commands","line_end":51,"severity":"medium","line_start":46},{"id":"filesystem:SKILL.md:24:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **迷你流程(面向新手)**:用 3 步走完——1 写目标/约束/<=5 步计划(可直接在回答里列出,或运行 `python scripts/plan_helper.py --goal \\\"...","category":"filesystem","line_end":24,"severity":"high","line_start":24},{"id":"filesystem:SKILL.md:16:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"2. 检查 `PROJECT_ROOT/.ai_context/03_ACTIVE_TASK.md`;缺失则按 `references/lite-protocol.md` 模板创建或运行 `pytho","category":"filesystem","line_end":16,"severity":"medium","line_start":16},{"id":"obfuscation:SKILL.md:1:heuristic-high-file-entropy-7-06-bits-possible-b","file":"SKILL.md","pattern":"[HEURISTIC] High file entropy (7.06 bits) - possible binary/encrypted content","snippet":"File: SKILL.md","category":"obfuscation","line_end":1,"severity":"high","line_start":1}],"finding_verdicts":[{"id":"sensitive:.gitignore:49:environment-file-access","reason":"The .gitignore entry excludes .env from version control. It does not read, expose, or transmit environment data.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:50:environment-file-access","reason":"The .gitignore entry excludes .env.local from version control. It is a protective repository setting, not environment-file access.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:50:environment-variant-files","reason":"The .gitignore pattern protects a local environment variant from commits. No secret is present or accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:52:credential-json-file","reason":"The .gitignore rule prevents credentials.json from being committed. It does not process credential contents.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:51:secrets-file","reason":"The .gitignore rule prevents secrets.json from being committed. It does not read or disclose secrets.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:53:certificate-key-files","reason":"The .gitignore wildcard excludes private key files from version control. It is a standard protective control.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:.gitignore:54:certificate-key-files","reason":"The .gitignore wildcard excludes PEM files from version control. It does not access certificate material.","verdict":"false_positive","confidence":0.99},{"id":"network:README.md:164:python-http-libraries","reason":"The cited line is a contribution invitation and contains no HTTP library use, request, or network destination.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:SECURITY.md:35:environment-file-access","reason":"The security guidance tells contributors not to commit .env files or secrets. This is preventative advice, not secret access.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:7:ruby-shell-backtick-execution","reason":"Backticks only format the .ai_context directory name in prose. There is no Ruby or shell execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:10:ruby-shell-backtick-execution","reason":"Backticks only format .ai_context in a usage description. The line contains no executable command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The line defines documentation variables in Markdown. It does not execute a shell command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"This is a documented optional Python command, not embedded executable code. The referenced script is not included in the scanned package.","verdict":"false_positive","confidence":0.82},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"The backticks identify a task file and numbered context files. No command is executed.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The backticks identify a manifest name and configuration keys. The line has no shell execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The line references a Markdown resource in prose. It does not invoke a command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"The line presents example Python commands for user selection. It is documentation, not automatic execution.","verdict":"false_positive","confidence":0.82},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"The line documents an optional plan-helper invocation with placeholder arguments. It is not code that the package executes.","verdict":"false_positive","confidence":0.82},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The line documents an optional logging command. No command is executed by the Markdown itself.","verdict":"false_positive","confidence":0.82},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"Backticks mark PROJECT_ROOT in safety guidance. The line explicitly limits operations and contains no execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"The line uses Markdown code formatting for a directory name. It has no executable content.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"This line begins a fenced Markdown example. It contains no shell or Ruby execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This line closes a fenced Markdown example. It contains no executable command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The line lists a resource path in Markdown. It does not execute the referenced resource.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The line lists a resource path in Markdown. It does not execute the referenced resource.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The line describes a script resource but does not execute it. The named script is absent from the scanned package.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The line describes a script resource but does not execute it. The named script is absent from the scanned package.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The line lists an assets directory in prose. It contains no shell or Ruby execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"This line begins a fenced Markdown log example. It contains no executable command.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:SKILL.md:24:path-traversal-sequence","reason":"The detector appears to match punctuation in the documented --out - command. No ../ sequence or untrusted path traversal instruction is present.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:SKILL.md:16:hidden-file-access","reason":"The workflow intentionally reads or creates a project-local .ai_context task file. This is documented state management, though project scripts should be inspected before running.","verdict":"false_positive","confidence":0.78},{"id":"obfuscation:SKILL.md:1:heuristic-high-file-entropy-7-06-bits-possible-b","reason":"SKILL.md is readable UTF-8 Markdown with Chinese text and Markdown formatting. The entropy heuristic does not show binary or encrypted content.","verdict":"false_positive","confidence":0.96}],"semantic_findings":[{"title":"Unverified Project-Local Script Execution Guidance","severity":"medium","locations":[{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":25,"line_start":25}],"confidence":0.82,"description":"The workflow recommends running Python entry points located in the target project, but it does not require inspecting them first. A malicious or untrusted repository could place arbitrary code at those paths.","confidence_reasoning":"The instructions explicitly name project-local Python entry points and present them as workflow actions. The Markdown does not show their contents or mandate a trust check."}],"subject_marketplace_commit_sha":"bdc4c7c6e1e64de0e81902bd9656da84164bdaf7","subject_content_hash":"1f62b23510599b4941527fdae6f7a4157b6ecb105a17e8e3200115f06b656213","subject_tree_hash":"5fe504d77cdcada4c6fd1ac22d69fa28764698b3b912fc23b02f179ee3dd37b4","subject_plugin_path":"skills/carl-312/ai-architect-lite","audit_payload_hash":"d57ca77ac6533f2ee27f1e43d9829f17","confirmed_risk_level":"medium","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"bdc4c7c6e1e64de0e81902bd9656da84164bdaf7","contentHash":"1f62b23510599b4941527fdae6f7a4157b6ecb105a17e8e3200115f06b656213","treeHash":"5fe504d77cdcada4c6fd1ac22d69fa28764698b3b912fc23b02f179ee3dd37b4","pluginPath":"skills/carl-312/ai-architect-lite","auditPayloadHash":"d57ca77ac6533f2ee27f1e43d9829f17"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/carl-312-ai-architect-lite/audits/9/attestation","status":"superseded"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":1,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"superseded","verificationState":"not_verified"},"isLatest":false}}