闲社服务运行正常AI智能体自动化平台
1

12要素应用

技能标识:12-factor-apps

Perform 12-Factor App compliance analysis on any codebase. Use when evaluating application architecture, auditing SaaS applications, or reviewing cloud-native applications against the original 12-Factor methodology.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

12要素应用

12-Factor应用合规性分析

参考:The Twelve-Factor App

概述

12-Factor应用方法论是一套构建软件即服务应用的最佳实践,这些应用应具备以下特性:

  • - 可在不同执行环境间移植
  • 无需架构变更即可扩展
  • 适合持续部署
  • 以最小摩擦进行维护

输入参数

参数描述是否必需
codebase_path待分析代码库的根路径必需

分析框架

因子I:代码库

原则: 一个代码库在版本控制中追踪,多次部署。

搜索模式:
bash

检查版本控制


ls -la .git 2>/dev/null || ls -la .hg 2>/dev/null

检查多个应用共享代码库

find . -name package.json -o -name pyproject.toml -o -name setup.py | head -20

检查环境特定代码分支

grep -r if.production\|if.development\|if.staging --include=.py --include=.js --include=.ts

文件模式: .git/、package.json、pyproject.toml、部署配置

合规标准:

级别标准
强单个Git仓库,所有环境使用相同代码库,无环境特定代码分支
部分
单个仓库但存在一些环境特定代码路径 |
| 弱 | 同一应用有多个仓库,或跨环境存在显著代码重复 |

反模式:

  • - 同一应用有多个Git仓库
  • 环境特定代码分支(if production: ...)
  • 开发和生产使用不同源文件
  • 共享代码未提取为库



因子II:依赖

原则: 显式声明并隔离依赖。

搜索模式:
bash

Python依赖文件


find . -name requirements.txt -o -name pyproject.toml -o -name setup.py -o -name Pipfile -o -name uv.lock

JavaScript/TypeScript依赖文件

find . -name package.json -o -name package-lock.json -o -name yarn.lock -o -name pnpm-lock.yaml

检查系统工具假设

grep -r subprocess.curl\|subprocess.wget\|os.system.ffmpeg\|shutil.which --include=.py grep -r exec.curl\|child_process.curl --include=.js --include=.ts

Docker/容器隔离

find . -name Dockerfile -o -name docker-compose*.yml

文件模式: /requirements.txt、/package.json、/.lock、/Dockerfile

合规标准:

级别标准
强存在锁文件,依赖隔离(venv/Docker),无隐式系统工具
部分
依赖已声明但无锁文件或隔离 |
| 弱 | 依赖仅在文档中,依赖系统安装的包 |

反模式:

  • - 缺少锁文件(非确定性构建)
  • 假设系统工具(curl、ImageMagick、ffmpeg)可用
  • 开发和生产使用不同依赖管理器
  • 无虚拟环境或容器隔离



因子III:配置

原则: 将配置存储在环境中。

搜索模式:
bash

环境变量使用


grep -r os.environ\|os.getenv\|process.env\|ENV\[ --include=.py --include=.js --include=.ts --include=.rb

硬编码凭据(反模式)

grep -r password.=.[\] --include=.py --include=.js --include=*.ts | grep -v test\|spec\|example grep -r api_key.=.[\] --include=.py --include=.js --include=*.ts | grep -v test\|spec\|example grep -r secret.=.[\] --include=.py --include=.js --include=*.ts | grep -v test\|spec\|example

环境特定配置文件(反模式)

find . -name config.dev. -o -name config.prod. -o -name settings.development. -o -name settings.production.

代码中的数据库URL

grep -r postgresql://\|mysql://\|mongodb://\|redis:// --include=.py --include=.js --include=*.ts | grep -v .env\|test\|example

文件模式: /.env、/config/.py、/settings.py、环境文件

合规标准:

级别标准
强所有配置通过环境变量,无硬编码密钥,可开源而不泄露
部分
大部分配置已外部化但存在一些硬编码默认值 |
| 弱 | 硬编码凭据,环境特定配置文件 |

反模式:

  • - 源代码中硬编码数据库URL、API密钥、密码
  • 配置文件如config/production.yml vs config/development.yml
  • 环境分组(if ENV == production: ...)
  • 密钥提交到版本控制



因子IV:后端服务

原则: 将后端服务视为附加资源。

搜索模式:
bash

通过配置的数据库连接


grep -r DATABASEURL\|DBHOST\|REDISURL\|CACHEURL --include=.py --include=.js --include=*.ts

服务初始化

grep -r create_engine\|MongoClient\|Redis\|Celery\|boto3 --include=*.py grep -r createPool\|createClient\|new Redis\|S3Client --include=.js --include=.ts

硬编码服务位置(反模式)

grep -r localhost:5432\|localhost:6379\|localhost:27017\|127.0.0.1 --include=.py --include=.js --include=*.ts | grep -v test\|spec\|example\|default

文件模式: /database/.py、/services/.py、/db.py、连接配置

合规标准:

级别标准
强所有服务通过配置中的URL/连接字符串,无需代码更改即可切换
部分
大部分服务可配置但存在一些硬编码默认值 |
| 弱 | 硬编码服务位置,每个环境有不同代码路径 |

反模式:

  • - 生产代码中硬编码localhost用于服务
  • 本地与云服务的条件逻辑(if USES3: ... else: localstorage)
  • 基于环境的服务特定代码路径
  • 开发和生产使用不同驱动



因子V:构建、发布、运行

原则: 严格分离构建和运行阶段。

搜索模式:
bash

构建/部署配置


find . -name Dockerfile -o -name Makefile -o -name build.sh -o -name deploy.sh
find . -name .github/workflows/*.yml -o -name .gitlab-ci.yml -o -name Jenkinsfile

package.json中的构建脚本

grep -A5 scripts package.json 2>/dev/null | grep -E build|start|deploy

检查运行时编译(反模式)

grep -r compile\|transpile\|webpack --include=*.py | grep -v test\|build

文件模式: /Dockerfile、/Makefile、/.github/workflows/、CI/CD配置

合规标准:

级别标准
强不可变发布,清晰的构建/发布/运行阶段,唯一发布ID
部分
构建和运行已分离但发布不可变 |
| 弱 | 运行时代码修改,启动时资产编译 |

反模式:

  • - 运行时代码修改
  • 应用启动期间资产编译
  • 配置烘焙到构建产物中
  • 无发布版本控制



因子VI:进程

原则: 将应用作为一个或多个无状态进程执行。

搜索模式:

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 12-factor-apps-1776126241 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 12-factor-apps-1776126241 技能

通过命令行安装

skillhub install 12-factor-apps-1776126241

下载

⬇ 下载 12-factor-apps v1.0.0(免费)

文件大小: 6.05 KB | 发布时间: 2026-4-14 11:39

v1.0.0 最新 2026-4-14 11:39
Initial release providing automated 12-Factor App compliance analysis for codebases.

- Analyzes codebases for adherence to the 12-Factor methodology with clear compliance criteria for each factor.
- Detects best practices and anti-patterns relating to codebase, dependencies, configuration, backing services, build/release/run, and processes.
- Reports findings based on configurable search and file patterns.
- Useful for architecture reviews, SaaS audits, and cloud-native readiness checks.
返回顶部