pre-flight-check 1.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pre_flight_check-1.2.0/.claude-plugin/marketplace.json +17 -0
- pre_flight_check-1.2.0/.claude-plugin/plugin.json +10 -0
- pre_flight_check-1.2.0/.github/ISSUE_TEMPLATE/bug_report.yml +105 -0
- pre_flight_check-1.2.0/.github/ISSUE_TEMPLATE/config.yml +11 -0
- pre_flight_check-1.2.0/.github/ISSUE_TEMPLATE/feature_request.yml +82 -0
- pre_flight_check-1.2.0/.github/PULL_REQUEST_TEMPLATE.md +68 -0
- pre_flight_check-1.2.0/.github/workflows/ci.yml +409 -0
- pre_flight_check-1.2.0/.gitignore +34 -0
- pre_flight_check-1.2.0/CLAUDE.md +129 -0
- pre_flight_check-1.2.0/CONTRIBUTING.md +158 -0
- pre_flight_check-1.2.0/Formula/README.md +72 -0
- pre_flight_check-1.2.0/Formula/pre-flight-check.rb +49 -0
- pre_flight_check-1.2.0/INSTALL.md +372 -0
- pre_flight_check-1.2.0/LICENSE +21 -0
- pre_flight_check-1.2.0/PKG-INFO +213 -0
- pre_flight_check-1.2.0/README.md +183 -0
- pre_flight_check-1.2.0/adapters/README.md +58 -0
- pre_flight_check-1.2.0/bucket/README.md +66 -0
- pre_flight_check-1.2.0/bucket/pre-flight-check.json +32 -0
- pre_flight_check-1.2.0/examples/README.md +31 -0
- pre_flight_check-1.2.0/examples/node-broken/.gitignore +4 -0
- pre_flight_check-1.2.0/examples/node-broken/README.md +66 -0
- pre_flight_check-1.2.0/examples/node-broken/package.json +12 -0
- pre_flight_check-1.2.0/examples/node-broken/src/index.ts +22 -0
- pre_flight_check-1.2.0/examples/node-broken/tsconfig.json +13 -0
- pre_flight_check-1.2.0/examples/python-broken/.gitignore +7 -0
- pre_flight_check-1.2.0/examples/python-broken/README.md +73 -0
- pre_flight_check-1.2.0/examples/python-broken/pyproject.toml +12 -0
- pre_flight_check-1.2.0/examples/python-broken/src/__init__.py +0 -0
- pre_flight_check-1.2.0/examples/python-broken/src/calc.py +22 -0
- pre_flight_check-1.2.0/install.ps1 +264 -0
- pre_flight_check-1.2.0/install.sh +347 -0
- pre_flight_check-1.2.0/pyproject.toml +81 -0
- pre_flight_check-1.2.0/src/pre_flight_check/__init__.py +15 -0
- pre_flight_check-1.2.0/src/pre_flight_check/__main__.py +10 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/AGENTS.md +157 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/GEMINI.md +47 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/SKILL.md +108 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/__init__.py +2 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/cline.md +79 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/copilot-instructions.md +89 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/cursor.mdc +110 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/gemini-extension.json +6 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/kiro.md +83 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/roo.md +79 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/run-pipeline.py +290 -0
- pre_flight_check-1.2.0/src/pre_flight_check/_data/windsurf.md +84 -0
- pre_flight_check-1.2.0/src/pre_flight_check/cli.py +181 -0
- pre_flight_check-1.2.0/src/pre_flight_check/engine.py +39 -0
- pre_flight_check-1.2.0/src/pre_flight_check/installer.py +179 -0
- pre_flight_check-1.2.0/uninstall.sh +34 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
+
"name": "pre-flight-check",
|
|
4
|
+
"description": "Stop your AI agent from declaring 'done' on broken code. Fail-fast quality gate that runs Typecheck, Lint, Test, and Security Audit sequentially before any task is marked complete.",
|
|
5
|
+
"owner": {
|
|
6
|
+
"name": "mirekondro",
|
|
7
|
+
"url": "https://github.com/mirekondro"
|
|
8
|
+
},
|
|
9
|
+
"plugins": [
|
|
10
|
+
{
|
|
11
|
+
"name": "pre-flight-check",
|
|
12
|
+
"description": "Fail-fast Typecheck → Lint → Test → Security Audit gate. Auto-detects Node.js and Python. Forbids the agent from suppressing errors. Zero runtime dependencies.",
|
|
13
|
+
"source": "./",
|
|
14
|
+
"category": "quality"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pre-flight-check",
|
|
3
|
+
"description": "Fail-fast quality gate (Typecheck → Lint → Test → Security Audit) that runs before any task is declared done or code is committed. Auto-detects Node.js and Python projects.",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "mirekondro",
|
|
6
|
+
"url": "https://github.com/mirekondro"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://github.com/mirekondro/The-Pre-Flight-Check",
|
|
9
|
+
"license": "MIT"
|
|
10
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
name: 🐛 Bug report
|
|
2
|
+
description: Something doesn't work as documented.
|
|
3
|
+
title: "[bug] "
|
|
4
|
+
labels: ["bug", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for the report. The more concrete you can be, the faster this gets fixed. Paste raw output rather than describing it.
|
|
10
|
+
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: what-happened
|
|
13
|
+
attributes:
|
|
14
|
+
label: What happened?
|
|
15
|
+
description: Tell us what you ran and what you saw. One paragraph is fine.
|
|
16
|
+
placeholder: |
|
|
17
|
+
I ran `python3 ~/.claude/skills/pre-flight-check/scripts/run-pipeline.py` in a pnpm monorepo and it picked npm instead of pnpm.
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: expected
|
|
23
|
+
attributes:
|
|
24
|
+
label: What did you expect?
|
|
25
|
+
placeholder: |
|
|
26
|
+
Detect pnpm-lock.yaml at the root, use `pnpm` for all stages.
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: textarea
|
|
31
|
+
id: reproduction
|
|
32
|
+
attributes:
|
|
33
|
+
label: Minimal reproduction
|
|
34
|
+
description: Exact commands. If you can pin it to one of the fixtures under `examples/`, even better.
|
|
35
|
+
render: bash
|
|
36
|
+
placeholder: |
|
|
37
|
+
cd ~/projects/my-repo
|
|
38
|
+
python3 ~/.claude/skills/pre-flight-check/scripts/run-pipeline.py
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
41
|
+
|
|
42
|
+
- type: textarea
|
|
43
|
+
id: full-output
|
|
44
|
+
attributes:
|
|
45
|
+
label: Full pipeline output
|
|
46
|
+
description: Everything from the first `# Pre-Flight Check` line through the final `### ❌` / `### ✅` / `### ⚠️` block. Paste raw, do not summarise.
|
|
47
|
+
render: text
|
|
48
|
+
validations:
|
|
49
|
+
required: true
|
|
50
|
+
|
|
51
|
+
- type: input
|
|
52
|
+
id: os
|
|
53
|
+
attributes:
|
|
54
|
+
label: OS + version
|
|
55
|
+
placeholder: macOS 14.5 / Ubuntu 22.04 / Windows 11
|
|
56
|
+
validations:
|
|
57
|
+
required: true
|
|
58
|
+
|
|
59
|
+
- type: input
|
|
60
|
+
id: python-version
|
|
61
|
+
attributes:
|
|
62
|
+
label: Python version
|
|
63
|
+
description: Output of `python3 --version`.
|
|
64
|
+
placeholder: Python 3.11.7
|
|
65
|
+
validations:
|
|
66
|
+
required: true
|
|
67
|
+
|
|
68
|
+
- type: input
|
|
69
|
+
id: claude-version
|
|
70
|
+
attributes:
|
|
71
|
+
label: Claude Code version
|
|
72
|
+
description: Output of `claude --version`. Optional if unsure.
|
|
73
|
+
placeholder: claude 1.x.x
|
|
74
|
+
|
|
75
|
+
- type: input
|
|
76
|
+
id: skill-version
|
|
77
|
+
attributes:
|
|
78
|
+
label: Skill version / commit
|
|
79
|
+
description: First line of `~/.claude/skills/pre-flight-check/scripts/run-pipeline.py`, or the commit sha you installed from.
|
|
80
|
+
placeholder: main @ 3592de9
|
|
81
|
+
|
|
82
|
+
- type: dropdown
|
|
83
|
+
id: install-method
|
|
84
|
+
attributes:
|
|
85
|
+
label: How did you install the skill?
|
|
86
|
+
options:
|
|
87
|
+
- One-line install (curl|bash)
|
|
88
|
+
- One-line install (irm|iex)
|
|
89
|
+
- Local clone + install.sh
|
|
90
|
+
- Manual cp
|
|
91
|
+
- Other (describe in "What happened?")
|
|
92
|
+
validations:
|
|
93
|
+
required: true
|
|
94
|
+
|
|
95
|
+
- type: checkboxes
|
|
96
|
+
id: pre-flight
|
|
97
|
+
attributes:
|
|
98
|
+
label: Pre-submission checklist
|
|
99
|
+
options:
|
|
100
|
+
- label: I searched existing issues and didn't find a duplicate.
|
|
101
|
+
required: true
|
|
102
|
+
- label: I'm running Python ≥3.8.
|
|
103
|
+
required: true
|
|
104
|
+
- label: The output above is raw, complete, and unredacted (modulo absolute paths you'd rather not share).
|
|
105
|
+
required: true
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 📖 Documentation
|
|
4
|
+
url: https://github.com/mirekondro1/The-Pre-Flight-Check#readme
|
|
5
|
+
about: Install guide, supported runtimes, FAQ.
|
|
6
|
+
- name: 🛠️ Troubleshooting
|
|
7
|
+
url: https://github.com/mirekondro1/The-Pre-Flight-Check/blob/main/INSTALL.md#troubleshooting
|
|
8
|
+
about: 9 common failure modes with copy-paste fixes. Check here before opening a bug report.
|
|
9
|
+
- name: 🤝 Contributing
|
|
10
|
+
url: https://github.com/mirekondro1/The-Pre-Flight-Check/blob/main/CONTRIBUTING.md
|
|
11
|
+
about: How to add a new runtime adapter, fixture, or doc fix.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
name: 💡 Feature request
|
|
2
|
+
description: Propose a new capability before opening a PR.
|
|
3
|
+
title: "[feat] "
|
|
4
|
+
labels: ["enhancement", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Read [CONTRIBUTING.md → Project philosophy](../blob/main/CONTRIBUTING.md#project-philosophy) before filing. **Especially** the "What we don't want" list — proposals for new dependencies, config files, or auto-installing tools will be declined.
|
|
10
|
+
|
|
11
|
+
New runtime adapters and new fixtures are welcome and rarely need long discussion. Behavioral changes to existing stages or to the failure-block format need agreement first.
|
|
12
|
+
|
|
13
|
+
- type: textarea
|
|
14
|
+
id: problem
|
|
15
|
+
attributes:
|
|
16
|
+
label: Problem
|
|
17
|
+
description: What user-visible problem does this solve? Be concrete — name a real workflow.
|
|
18
|
+
placeholder: |
|
|
19
|
+
I work in a Go monorepo. `pre-flight-check` exits with UNKNOWN RUNTIME so my agent skips quality gates entirely.
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: proposal
|
|
25
|
+
attributes:
|
|
26
|
+
label: Proposal
|
|
27
|
+
description: What change do you want? Include the expected command(s) per stage if it's a new runtime.
|
|
28
|
+
placeholder: |
|
|
29
|
+
Add a Go adapter that detects `go.mod` and runs:
|
|
30
|
+
1. TYPECHECK -> go vet ./...
|
|
31
|
+
2. LINT -> golangci-lint run
|
|
32
|
+
3. TEST -> go test ./...
|
|
33
|
+
4. SECURITY AUDIT -> govulncheck ./...
|
|
34
|
+
validations:
|
|
35
|
+
required: true
|
|
36
|
+
|
|
37
|
+
- type: textarea
|
|
38
|
+
id: alternatives
|
|
39
|
+
attributes:
|
|
40
|
+
label: Alternatives considered
|
|
41
|
+
description: What else could solve the problem? Why is your proposal better?
|
|
42
|
+
placeholder: |
|
|
43
|
+
- Manually invoking each tool from a Makefile: doesn't enforce the agent contract.
|
|
44
|
+
- Project-local skill fork: works but doesn't help anyone else.
|
|
45
|
+
|
|
46
|
+
- type: dropdown
|
|
47
|
+
id: category
|
|
48
|
+
attributes:
|
|
49
|
+
label: Category
|
|
50
|
+
options:
|
|
51
|
+
- New runtime adapter
|
|
52
|
+
- New stage / tool for an existing runtime
|
|
53
|
+
- Failure-block format change
|
|
54
|
+
- Installer change
|
|
55
|
+
- Documentation
|
|
56
|
+
- New fixture
|
|
57
|
+
- Other
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: scope
|
|
63
|
+
attributes:
|
|
64
|
+
label: Scope check
|
|
65
|
+
description: |
|
|
66
|
+
Tick whichever apply. Honesty saves us both time.
|
|
67
|
+
value: |
|
|
68
|
+
- [ ] This adds **no** Python runtime dependencies.
|
|
69
|
+
- [ ] This adds **no** configuration file.
|
|
70
|
+
- [ ] This does **not** install third-party tooling on behalf of the user.
|
|
71
|
+
- [ ] This does **not** change the failure-block Markdown shape (### ❌ FAILURE, **Command Executed:**, **Context for AI Fix:**).
|
|
72
|
+
- [ ] I'm willing to send the PR if accepted.
|
|
73
|
+
|
|
74
|
+
- type: checkboxes
|
|
75
|
+
id: pre-flight
|
|
76
|
+
attributes:
|
|
77
|
+
label: Pre-submission checklist
|
|
78
|
+
options:
|
|
79
|
+
- label: I read CONTRIBUTING.md and my proposal aligns with the project philosophy.
|
|
80
|
+
required: true
|
|
81
|
+
- label: I searched existing issues and didn't find a duplicate or rejected version of this.
|
|
82
|
+
required: true
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Thanks for the PR. Fill out the sections below — terse is fine, blank is not.
|
|
3
|
+
For docs-only or typo fixes, you can skip the Test plan section.
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
<!-- One paragraph. What does this change and why. Link the issue it resolves. -->
|
|
9
|
+
|
|
10
|
+
Closes #
|
|
11
|
+
|
|
12
|
+
## Type
|
|
13
|
+
|
|
14
|
+
- [ ] 🐛 Bug fix (non-breaking)
|
|
15
|
+
- [ ] ✨ New feature (non-breaking — new runtime, new fixture, new flag)
|
|
16
|
+
- [ ] 💥 Breaking change (alters failure-block format, removes flag, changes default behavior)
|
|
17
|
+
- [ ] 📖 Documentation only
|
|
18
|
+
- [ ] 🛠️ Build / CI / installer change
|
|
19
|
+
- [ ] ♻️ Refactor (no behavior change)
|
|
20
|
+
|
|
21
|
+
## Scope checklist
|
|
22
|
+
|
|
23
|
+
<!-- Project philosophy gates — read CONTRIBUTING.md if any of these don't apply. -->
|
|
24
|
+
|
|
25
|
+
- [ ] No new Python runtime dependencies added to `run-pipeline.py`.
|
|
26
|
+
- [ ] No new configuration file introduced.
|
|
27
|
+
- [ ] No third-party tooling auto-installed on behalf of the user.
|
|
28
|
+
- [ ] If the failure-block Markdown shape changed, this is flagged as a breaking change above.
|
|
29
|
+
- [ ] If a new runtime was added, a fixture under `examples/<runtime>-broken/` is included.
|
|
30
|
+
|
|
31
|
+
## Test plan
|
|
32
|
+
|
|
33
|
+
<!--
|
|
34
|
+
What did you actually run? Include the exact commands and exit codes.
|
|
35
|
+
Untested PRs may sit. Smoke against at least one example fixture.
|
|
36
|
+
-->
|
|
37
|
+
|
|
38
|
+
- [ ] Syntax check: `python3 -c "import py_compile; py_compile.compile('skills/pre-flight-check/scripts/run-pipeline.py', doraise=True)"`
|
|
39
|
+
- [ ] `examples/node-broken/`: ran the pipeline, observed exit `1` + `### ❌ PRE-FLIGHT FAILURE: TYPECHECK`.
|
|
40
|
+
- [ ] `examples/python-broken/`: ran the pipeline, observed exit `1` + `### ❌ PRE-FLIGHT FAILURE: TYPECHECK`.
|
|
41
|
+
- [ ] Tested against a real project I work on (optional but encouraged — describe below).
|
|
42
|
+
- [ ] CI is green.
|
|
43
|
+
|
|
44
|
+
<details>
|
|
45
|
+
<summary>Real-project smoke output (optional)</summary>
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
<paste output here>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
</details>
|
|
52
|
+
|
|
53
|
+
## SKILL.md impact
|
|
54
|
+
|
|
55
|
+
- [ ] No change to agent contract.
|
|
56
|
+
- [ ] Updated `SKILL.md` to reflect new behavior (describe below).
|
|
57
|
+
|
|
58
|
+
## Docs
|
|
59
|
+
|
|
60
|
+
- [ ] No user-visible change → no doc update needed.
|
|
61
|
+
- [ ] `README.md` updated.
|
|
62
|
+
- [ ] `INSTALL.md` updated.
|
|
63
|
+
- [ ] `examples/README.md` updated.
|
|
64
|
+
- [ ] N/A — docs-only PR.
|
|
65
|
+
|
|
66
|
+
## Anything else reviewers should know
|
|
67
|
+
|
|
68
|
+
<!-- Edge cases you noticed, tradeoffs you considered, follow-ups you'd like. -->
|