Skip to content

Commit 4e8b669

Browse files
authored
docs(all): clarify how to get started (#12)
1 parent d93a822 commit 4e8b669

3 files changed

Lines changed: 52 additions & 34 deletions

File tree

FAQ.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Frequently Asked Questions
22

3+
## Version Control System support
4+
5+
### Q: Do you support version control platforms other than GitHub?
6+
7+
**A:** Currently this project only supports projects hosted on GitHub.
8+
39
## Release Workflow Issues
410

511
### Q: Why is my release workflow failing with permission errors?
@@ -42,34 +48,41 @@ Ensure your commits follow the format:
4248

4349
### Q: Can I manually specify the version number?
4450

45-
**A:** No, the workflow is designed to automatically determine the version based on conventional commits. This ensures consistent versioning across all projects. If you need a specific version, ensure your commits indicate the appropriate change level.
51+
**A:** No, the workflow is designed to automatically determine the version based on conventional commits. This ensures consistent versioning across all
52+
projects. If you need a specific version, ensure your commits indicate the appropriate change level.
4653

4754
## Project Generation Issues
4855

4956
### Q: Why does project generation fail during the release step?
5057

5158
**A:** The post-generation hook attempts to create an initial release. This requires:
59+
5260
1. GitHub CLI (`gh`) to be installed and authenticated
5361
2. A valid GitHub token with repository write permissions
5462
3. The repository to exist on GitHub
5563

5664
To skip the automatic release during local testing, you have two options:
5765

5866
1. **Recommended**: Run the hook but skip only the git push:
67+
5968
```bash
6069
export SKIP_GIT_PUSH=true
6170
```
71+
6272
This allows the post-generation hook to set up your project correctly while avoiding push failures.
6373

6474
2. **Not recommended**: Skip the entire post-generation hook:
75+
6576
```bash
6677
export RUN_POST_HOOK=false
6778
```
79+
6880
⚠️ This will skip important setup steps like git initialization, dependency locking, and project configuration.
6981

7082
### Q: Why does the post-generation hook fail to push to main?
7183

72-
**A:** If your repository has branch protection rules that prevent direct pushes to main from local development, the post-generation hook will fail when trying to push the initial commit.
84+
**A:** If your repository has branch protection rules that prevent direct pushes to main from local development, the post-generation hook will fail when trying
85+
to push the initial commit.
7386

7487
#### Solution:
7588

README.md

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,70 @@
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>
23

3-
[![CI](https://github.com/zenable-io/ai-native-python/actions/workflows/ci.yml/badge.svg)](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.
45

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.
610

711
## Features
812

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
1519
- 🔄 Automated versioning and releasing with `python-semantic-release`
1620

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)
1822

1923
## Getting Started
2024

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:
2227

23-
```bash
24-
# Install the prerequisites
25-
brew install uv
28+
```bash
29+
# Install the prerequisites
30+
brew install uv
2631

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+
```
3035

31-
If you'd like to use SSH instead of HTTPS, use this command instead:
36+
1. Review your newly populated GitHub repository 🎉
3237

33-
```bash
34-
uvx --with gitpython cookiecutter git+ssh://git@github.com/zenable-io/ai-native-python.git
35-
```
38+
## Next Steps
3639

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.
3943

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.
4246

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!
4450
4551
```bash
4652
# Enter the project directory
4753
cd $(ls -td * | head -1)
4854
49-
# Initialize the repository
50-
task init
51-
5255
# Checkout a new branch for your initial content
5356
git checkout -b initial-content
5457
5558
# Check for `NotImplementedError`s and address them as a part of adding your business logic
5659
grep -r NotImplementedError *
5760
```
5861
59-
## Optional setup
62+
### Optional setup
6063
6164
If you'd like to support license file checking locally, you will need to install `grant` and put it in your `PATH`
6265

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:
6467
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+
```

img/ai-native-python.png

255 KB
Loading

0 commit comments

Comments
 (0)