Skip to content

Commit fbd8198

Browse files
committed
feat: build Python product engineering hub
1 parent f0da3fc commit fbd8198

59 files changed

Lines changed: 2474 additions & 70 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Propose a Python project
2+
description: Suggest a maintained Python project for human review in Project Radar.
3+
title: "[Project]: "
4+
labels: ["project-proposal"]
5+
body:
6+
- type: input
7+
id: source
8+
attributes:
9+
label: Official project URL
10+
description: Link to the source repository or official project home.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: outcome
15+
attributes:
16+
label: What can a Python developer accomplish with it?
17+
description: Describe a concrete user outcome, not marketing copy.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: evidence
22+
attributes:
23+
label: Maintenance and quality evidence
24+
description: Include release, documentation, tests, license, and security evidence you checked.
25+
validations:
26+
required: true
27+
- type: dropdown
28+
id: area
29+
attributes:
30+
label: Primary area
31+
options:
32+
- Python engineering
33+
- Web and APIs
34+
- Automation
35+
- AI coding
36+
- AI agents
37+
- Skills and MCP
38+
validations:
39+
required: true
40+
- type: checkboxes
41+
id: declaration
42+
attributes:
43+
label: Declaration
44+
options:
45+
- label: I disclosed any affiliation and wrote this proposal from sources I checked.
46+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ List the actual results, not only the commands you intended to run.
2828
- [ ] `python -m pytest`
2929
- [ ] `python tools/validate_catalog.py`
3030
- [ ] `python tools/export_catalog.py --check`
31+
- [ ] `python tools/render_readmes.py --check`
32+
- [ ] `python tools/build_content_manifest.py --check`
33+
- [ ] `python tools/verify_examples.py`
3134
- [ ] English and Chinese output remain consistent
3235
- [ ] No secrets, generated reports, local build output, or analytics IDs were committed
3336

.github/workflows/validate.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,12 @@ jobs:
3838

3939
- name: Verify public JSON export
4040
run: python tools/export_catalog.py --check
41+
42+
- name: Verify browsable README indexes
43+
run: python tools/render_readmes.py --check
44+
45+
- name: Verify first-party content manifest
46+
run: python tools/build_content_manifest.py --check
47+
48+
- name: Verify runnable examples
49+
run: python tools/verify_examples.py

AGENTS.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
## Mission
44

5-
This repository is the broad, community-maintained data catalog behind
6-
FlyPython. It is not a website. Keep `flypython.com` focused on editorial
7-
learning paths, task playbooks, and presentation; keep this repository focused
8-
on reviewed catalog data, its public JSON contract, and its contribution
9-
workflow.
5+
This repository is the community-maintained source for building good Python
6+
products in the AI-coding era. It is not a website. Keep `flypython.com`
7+
focused on presentation, discovery, and conversion; keep this repository
8+
focused on practical guides, playbooks, runnable examples, reusable templates,
9+
reviewed catalog data, and stable public JSON contracts.
1010

1111
## Content rules
1212

1313
- Prefer official documentation and primary sources.
14+
- Keep first-party Python engineering and AI-coding guidance specific, testable,
15+
and honest about what automation can and cannot prove.
1416
- Every catalog entry must include a stable ID, path, path-local order, source
1517
type, level, rationale, review date, status, and any key or safety requirements.
1618
- Do not call a project production-ready without current maintenance, licensing,
@@ -19,6 +21,10 @@ workflow.
1921
Descriptions and classifications require human review.
2022
- Keep English and Chinese website output generated from the same canonical
2123
resource data. Do not hand-copy catalog content into website source files.
24+
- Keep paired English and Chinese first-party guides aligned in scope, version,
25+
review date, and factual meaning.
26+
- Add first-party guides and playbooks to `content-manifest.json`; keep each
27+
locale pair aligned and verify its source checksum.
2228
- Treat HTTP 403, 429, and transient 5xx responses as review-needed states, not
2329
automatic proof that a resource is broken.
2430

@@ -28,6 +34,11 @@ workflow.
2834
- Run the repository validation workflow before committing.
2935
- Regenerate `catalog.json` after source changes and verify it with
3036
`python tools/export_catalog.py --check`.
37+
- Regenerate both README catalog indexes and verify them with
38+
`python tools/render_readmes.py --check`.
39+
- Regenerate `content-manifest.json` and verify it with
40+
`python tools/build_content_manifest.py --check`.
41+
- Verify every runnable example with `python tools/verify_examples.py`.
3142
- Website consumers must pin a full repository commit and verify the catalog
3243
checksum. Do not make production builds depend on a moving branch.
3344
- Keep external-link checks read-only, rate-limited, retryable, and blocked from

CHANGELOG.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ This file records notable catalog-contract and maintenance changes.
66

77
### Added
88

9+
- A complete bilingual Python AI-coding workflow covering task contracts,
10+
repository inspection, reproducible environments, bounded changes, tests,
11+
runtime verification, side-effect review, and evidence-based delivery.
12+
- Browsable English and Chinese README indexes containing every reviewed
13+
resource, its rationale, level, access requirements, risk, and review date.
14+
- Deterministic README generation and drift checks backed by canonical catalog
15+
data.
916
- One source file per reviewed resource under `catalog/resources/`.
1017
- A deterministic, versioned `catalog.json` export for pinned website consumers.
1118
- A JSON Schema describing the public catalog v1 contract.
@@ -15,11 +22,21 @@ This file records notable catalog-contract and maintenance changes.
1522
- Catalog validation and a safe external-link auditor with retry, report, and
1623
SSRF/DNS-rebinding protection.
1724
- Contribution, conduct, security, issue, and resource-curation policies.
25+
- A product-quality guide and five bilingual task playbooks for bug fixes, API
26+
work, external integrations, dependency upgrades, and releases.
27+
- A standard-library-only example with a deliberately failing starter, verified
28+
solution, and task contract.
29+
- Reusable task, plan, review, verification, agent-instruction, and pyproject
30+
templates.
31+
- A versioned `content-manifest.json` with bilingual paths, summaries, review
32+
state, and source checksums for pinned website consumers.
33+
- A human-review contribution queue for current Python Project Radar entries.
1834

1935
### Changed
2036

21-
- Defined this repository as the canonical catalog-data and review layer behind
22-
flypython.com, rather than a second public website.
37+
- Defined this repository as the canonical Python product-engineering content,
38+
catalog-data, and review layer behind flypython.com, rather than a second
39+
public website.
2340
- Split catalog metadata, paths, and resources into independently reviewable
2441
files while preserving the 21 existing human-reviewed resource records.
2542
- Required website consumers to pin a full repository commit and verify the

CONTRIBUTING.md

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
# Contributing to the FlyPython catalog
1+
# Contributing to FlyPython
22

3-
FlyPython maintains a bilingual, reviewed source catalog used by
4-
[flypython.com](https://flypython.com/). Contributions should improve source
5-
quality, factual accuracy, or the maintenance workflow. General Python questions
6-
belong in [GitHub Discussions](https://github.com/flypythoncom/python/discussions).
3+
FlyPython maintains bilingual Python engineering guides, task playbooks,
4+
runnable examples, templates, and a reviewed source catalog used by
5+
[flypython.com](https://flypython.com/). Contributions should help a visitor
6+
complete a real Python task or improve factual accuracy and maintainability.
7+
General Python questions belong in
8+
[GitHub Discussions](https://github.com/flypythoncom/python/discussions).
79

810
Read the [curation policy](docs/CURATION_POLICY.md) before contributing.
911

@@ -19,12 +21,20 @@ to submit and retain required third-party notices.
1921
Use the matching issue form before a larger change:
2022

2123
- **Resource proposal** for a new official source.
24+
- **Project proposal** for a current Python project that should receive human
25+
review for Project Radar.
2226
- **Broken link** for an unreachable or replaced resource.
2327
- **Security report** for a vulnerability; follow [SECURITY.md](SECURITY.md)
2428
instead of opening a public issue.
2529

2630
Small typo, metadata, or tooling fixes may go directly to a focused pull request.
2731

32+
First-party guides and playbooks must remain practical, testable, and aligned
33+
in English and Chinese. A content change must update both language files with
34+
the same content version and review date, then regenerate
35+
`content-manifest.json`. Do not present generated code, a passing test, or a
36+
deployment command as proof of user value or production readiness.
37+
2838
## Catalog sources
2939

3040
The canonical source is the `catalog/` directory:
@@ -67,6 +77,8 @@ After changing catalog sources, regenerate the public export:
6777

6878
```bash
6979
python tools/export_catalog.py
80+
python tools/render_readmes.py
81+
python tools/build_content_manifest.py
7082
```
7183

7284
Run the same deterministic checks as CI:
@@ -75,6 +87,9 @@ Run the same deterministic checks as CI:
7587
python -m pytest
7688
python tools/validate_catalog.py
7789
python tools/export_catalog.py --check
90+
python tools/render_readmes.py --check
91+
python tools/build_content_manifest.py --check
92+
python tools/verify_examples.py
7893
```
7994

8095
Maintainers can run the networked link audit through GitHub Actions. For a
@@ -90,7 +105,7 @@ justify removing a resource.
90105

91106
## Pull request checklist
92107

93-
- Keep source data and the generated `catalog.json` consistent.
108+
- Keep source content and generated JSON exports consistent.
94109
- Preserve English and Chinese meaning.
95110
- Include evidence for maintenance, ownership, access, and safety claims.
96111
- Do not call a project production-ready without current evidence.

0 commit comments

Comments
 (0)