Marketplace standards-extraction
Extract coding standards and conventions from CONTRIBUTING.md, .editorconfig, linter configs. Use for onboarding and ensuring consistent contributions.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/consiliency/standards-extraction" ~/.claude/skills/aiskillstore-marketplace-standards-extraction && rm -rf "$T"
manifest:
skills/consiliency/standards-extraction/SKILL.mdsource content
Standards Extraction Skill
Extract coding standards, formatting rules, and contribution guidelines from project configuration files. Returns structured data about project conventions.
Variables
| Variable | Default | Description |
|---|---|---|
| INCLUDE_LINTER_RULES | true | Parse ESLint, Prettier, Ruff configs |
| INCLUDE_EDITOR_CONFIG | true | Parse .editorconfig |
| INCLUDE_GIT_HOOKS | true | Check for pre-commit, husky configs |
| OUTPUT_FORMAT | json | Output format: json, markdown, or toon |
Instructions
MANDATORY - Follow the Workflow steps below in order. Do not skip steps.
- Check for CONTRIBUTING.md or similar guide files
- Parse formatting configuration files
- Parse linting configuration files
- Check for git hooks and CI checks
- Compile standards summary
Red Flags - STOP and Reconsider
If you're about to:
- Assume formatting rules without checking config files
- Skip CONTRIBUTING.md because "it's probably standard"
- Infer conventions without evidence from configs
- Report rules that contradict actual config files
STOP -> Read the config files -> Extract actual rules -> Then report
Workflow
1. Discover Standards Files
Check for these files (in order):
| File | Type | Purpose |
|---|---|---|
| Markdown | Contribution guidelines |
| Text | Contribution guidelines |
| Markdown | Contribution guidelines |
| Markdown | Contribution guidelines |
| INI | Editor formatting |
| JSON/YAML | Prettier config |
| JS/TS | Prettier config |
| JSON/YAML | ESLint config |
| JS/TS | ESLint flat config |
| TOML | Python tools (ruff, black, isort) |
| TOML | Ruff config |
| YAML | Pre-commit hooks |
| Directory | Git hooks |
| Markdown | PR template |
| Directory | Issue templates |
2. Extract Contribution Guidelines
From CONTRIBUTING.md, extract:
- Commit message format: Conventional commits, gitmoji, etc.
- Branch naming: feature/, fix/, etc.
- PR process: Required reviewers, checks, etc.
- Code style notes: Any explicit guidance
- Testing requirements: What tests are required
3. Extract Formatting Rules
From .editorconfig:
[*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true
From Prettier config:
{ "semi": true, "singleQuote": true, "tabWidth": 2, "printWidth": 100 }
4. Extract Linting Rules
From ESLint:
- Key enabled/disabled rules
- Extended configs (airbnb, standard, etc.)
- Custom rules
From Ruff/Black (pyproject.toml):
[tool.ruff] line-length = 88 select = ["E", "F", "I"] [tool.black] line-length = 88
5. Extract Git Hooks
From .pre-commit-config.yaml:
- Hooks that run on commit
- Required checks
From .husky/:
- Pre-commit scripts
- Pre-push scripts
6. Compile Output
{ "project_root": "/path/to/project", "extracted_at": "2025-12-21T12:00:00Z", "contribution_guidelines": { "source": "CONTRIBUTING.md", "commit_format": "conventional", "branch_naming": "type/description", "pr_requirements": ["tests", "review"], "notes": [] }, "formatting": { "indent_style": "space", "indent_size": 2, "line_length": 100, "quotes": "single", "semicolons": true, "trailing_commas": "es5", "sources": [".editorconfig", ".prettierrc"] }, "linting": { "javascript": { "tool": "eslint", "extends": ["next/core-web-vitals"], "key_rules": {} }, "python": { "tool": "ruff", "line_length": 88, "select": ["E", "F", "I"] } }, "git_hooks": { "pre_commit": ["lint-staged", "prettier"], "pre_push": ["test"] }, "ci_checks": { "source": ".github/workflows/", "checks": ["lint", "test", "build"] } }
Cookbook
Parsing Configurations
- IF: Need to parse any config file
- THEN: Read and execute
./cookbook/config-parsing.md
Quick Reference
Commit Format Detection
| Pattern in CONTRIBUTING.md | Format |
|---|---|
| "Conventional Commits" | conventional |
| "feat:", "fix:", "chore:" | conventional |
| ":emoji:" or gitmoji | gitmoji |
| "JIRA-123" pattern | jira |
| No pattern found | freeform |
Common Formatter Configs
| File | Tool |
|---|---|
| Prettier |
| Biome |
| EditorConfig |
| dprint |
Common Linter Configs
| File | Tool |
|---|---|
, | ESLint |
| Ruff |
| Pylint |
| golangci-lint |
| Clippy (Rust) |
Output Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "project_root": {"type": "string"}, "extracted_at": {"type": "string", "format": "date-time"}, "contribution_guidelines": { "type": "object", "properties": { "source": {"type": "string"}, "commit_format": {"type": "string"}, "branch_naming": {"type": "string"}, "pr_requirements": {"type": "array", "items": {"type": "string"}}, "notes": {"type": "array", "items": {"type": "string"}} } }, "formatting": { "type": "object", "properties": { "indent_style": {"type": "string"}, "indent_size": {"type": "integer"}, "line_length": {"type": "integer"}, "quotes": {"type": "string"}, "semicolons": {"type": "boolean"}, "sources": {"type": "array", "items": {"type": "string"}} } }, "linting": {"type": "object"}, "git_hooks": {"type": "object"}, "ci_checks": {"type": "object"} } }
Integration
This skill is used by:
- Onboarding workflow/ai-dev-kit:quickstart-codebase
- To follow project conventionslane-executor- Contribution validation - To check PR compliance