|
1 | | -# AI-Native Python |
| 1 | +<p align="center"><img src="img/ai-native-python.png" width="100px"/></p> |
| 2 | +<div align="center"><h1>AI-Native Python</h1></div> |
2 | 3 |
|
3 | | -[](https://github.com/zenable-io/ai-native-python/actions/workflows/ci.yml) |
| 4 | +AI-Native Python sets you on a paved road of automated guardrails, where each commit is instantly checked for security, quality, and compliance. |
4 | 5 |
|
5 | | -Give your vibe coding the perfect starting point with this paved-road repo generator so Cursor (or any AI) can learn by example—no verbose prompts needed. |
| 6 | +It works seamlessly with GitHub Copilot, Cursor, Claude, Windsurf, and other leading AI coding agents to route their output through fully instrumented pipelines |
| 7 | +of tests, security scans, and release automation. |
| 8 | + |
| 9 | +Make your tools meet every requirement on the first pass, letting you ship faster without loosening safety or standards. |
6 | 10 |
|
7 | 11 | ## Features |
8 | 12 |
|
9 | | -- 🚀 Modern Python development with `uv` |
10 | | -- 🧪 Automated testing with `pytest` |
11 | | -- 🔍 Code quality checks with `pre-commit` hooks (`ruff`, `pyright`, etc.) |
12 | | -- 🔐 Security scanning with SBOM generation (`syft`), vulnerability scanning (`grype`), and license checks (`grant`) |
13 | | -- 🤖 Automated dependency updates with Dependabot and Renovate |
14 | | -- 📦 Multi-platform Docker builds |
| 13 | +- 🚀 Modern, lightning fast Python development with `uv` |
| 14 | +- 🧪 Automated testing with `pytest` with 100% coverage |
| 15 | +- 🔍 Code quality checks on every commit with `pre-commit` |
| 16 | +- 🔐 Security scanning with SBOM generation, vulnerability scanning, and license checks |
| 17 | +- 🤖 Never think about upstream vulnerabilities again with **automated dependency upgrades** |
| 18 | +- 📦 Ensure usability across all major platforms with multi-platform Docker builds |
15 | 19 | - 🔄 Automated versioning and releasing with `python-semantic-release` |
16 | 20 |
|
17 | | -For FAQs including release workflow troubleshooting, see our [FAQ documentation](./FAQ.md). |
| 21 | +For FAQs including release workflow troubleshooting, see our [FAQ documentation](./FAQ.md) |
18 | 22 |
|
19 | 23 | ## Getting Started |
20 | 24 |
|
21 | | -Create an empty remote Git repository that aligns with name of the project you'd like to create. Once it exists, you can continue. |
| 25 | +1. Create an [empty GitHub repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) |
| 26 | +1. Generate a project with the same name as the repo you just made: |
22 | 27 |
|
23 | | -```bash |
24 | | -# Install the prerequisites |
25 | | -brew install uv |
| 28 | + ```bash |
| 29 | + # Install the prerequisites |
| 30 | + brew install uv |
26 | 31 |
|
27 | | -# Initialize your project |
28 | | -uvx --with gitpython cookiecutter gh:zenable-io/ai-native-python |
29 | | -``` |
| 32 | + # Initialize your project |
| 33 | + uvx --with gitpython cookiecutter gh:zenable-io/ai-native-python |
| 34 | + ``` |
30 | 35 |
|
31 | | -If you'd like to use SSH instead of HTTPS, use this command instead: |
| 36 | +1. Review your newly populated GitHub repository 🎉 |
32 | 37 |
|
33 | | -```bash |
34 | | -uvx --with gitpython cookiecutter git+ssh://git@github.com/zenable-io/ai-native-python.git |
35 | | -``` |
| 38 | +## Next Steps |
36 | 39 |
|
37 | | -This will push the initial commit and run a release of your project; ensure that this succeeds before adding business logic to ensure you have a solid |
38 | | -foundation. |
| 40 | +Now that you've generated the initial repository you can configure any required repository settings such as rulesets/branch protections. This can be done via |
| 41 | +Infrastructure as Code (IaC) or manually, but ostensibly by this point your repository is aligned with your organizational practices and you're ready to start |
| 42 | +adding features. |
39 | 43 |
|
40 | | -Then, configure any required repository settings such as rulesets/branch protections. This can be done via Infrastructure as Code (IaC) or manually, but |
41 | | -ostensibly by this point your repository is aligned with your organizational practices and you're ready to start adding features. |
| 44 | +> [!TIP] |
| 45 | +> Consider a tool like OpenSSF [allstar](https://github.com/ossf/allstar) to monitor these settings automatically. |
42 | 46 |
|
43 | | -Consider a tool like OpenSSF [allstar](https://github.com/ossf/allstar) to monitor and alert or mitigate on your behalf. |
| 47 | +### Adding a feature |
| 48 | + |
| 49 | +To make a change to the project, just replace the `NotImplementedError` placeholder and you're all set! |
44 | 50 |
|
45 | 51 | ```bash |
46 | 52 | # Enter the project directory |
47 | 53 | cd $(ls -td * | head -1) |
48 | 54 |
|
49 | | -# Initialize the repository |
50 | | -task init |
51 | | - |
52 | 55 | # Checkout a new branch for your initial content |
53 | 56 | git checkout -b initial-content |
54 | 57 |
|
55 | 58 | # Check for `NotImplementedError`s and address them as a part of adding your business logic |
56 | 59 | grep -r NotImplementedError * |
57 | 60 | ``` |
58 | 61 |
|
59 | | -## Optional setup |
| 62 | +### Optional setup |
60 | 63 |
|
61 | 64 | If you'd like to support license file checking locally, you will need to install `grant` and put it in your `PATH` |
62 | 65 |
|
63 | | -## Version Control System support |
| 66 | +Additionally, if you'd like to use SSH instead of HTTPS to connect to the `ai-native-python` project, use this command instead: |
64 | 67 |
|
65 | | -Currently this project only supports projects hosted on GitHub. |
| 68 | +```bash |
| 69 | +uvx --with gitpython cookiecutter git+ssh://git@github.com/zenable-io/ai-native-python.git |
| 70 | +``` |
0 commit comments