Repository navigation
docs: comprehensive community health and contributor guide overhaul - #3845
nikhilsaxena04 wants to merge 4 commits into
Conversation
|
Hey @safishamsi PR is up! As discussed, this completely overhauls the repository documentation, sets up a proper I made the executive calls on the minor policies so it wouldn't block you. Let me know if anything needs a tweak! |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Overhauls contributor-facing docs and templates: adds a Contributor Covenant CODE_OF_CONDUCT.md, restructures the bug/feature issue forms into required dropdowns (OS, Python version, install method, PR willingness, compatibility impact), and rewrites the PR template around a "Verification & Invariants" checklist covering regression tests, skill-artifact regeneration, determinism, and AI-authorship disclosure. Corrects several docs to match actual behaviour: sanitize_label() no longer HTML-escapes, extractors and tests are described as relying on ambient scan-root state rather than being fully side-effect-free, and AGENTS.md now steers assistants away from trusting the graph when the task is the graph's own correctness. Repoints the contributing links from the README anchor to CONTRIBUTING.md.
No blocking issues surfaced. 2 lower-confidence candidates did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 88 functions depend on the 88 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 88 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 88 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
301 of 301 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety — the selection is not trustworthy on its own (see below). CI should run the whole suite.
tests/test_affected_cli.py— full-run-safetytests/test_affected_member_seed.py— full-run-safetytests/test_agents_platform.py— full-run-safetytests/test_analyze.py— full-run-safetytests/test_anthropic_custom_endpoint.py— full-run-safetytests/test_antigravity_install.py— full-run-safetytests/test_apm_fallback_version.py— full-run-safetytests/test_architecture_doc.py— full-run-safetytests/test_astro_extraction.py— full-run-safetytests/test_astro_import_ids.py— full-run-safetytests/test_atomic_canvas_export.py— full-run-safetytests/test_atomic_version_stamp.py— full-run-safetytests/test_atomic_writes.py— full-run-safetytests/test_backend_env_isolation.py— full-run-safetytests/test_backend_extras.py— full-run-safetytests/test_benchmark.py— full-run-safetytests/test_benchmark_raw_graph.py— full-run-safetytests/test_build.py— full-run-safetytests/test_build_merge_dedup_scope.py— full-run-safetytests/test_build_merge_hyperedges_and_prune.py— full-run-safetytests/test_build_merge_shrink_guard.py— full-run-safetytests/test_builtin_global_type_refs.py— full-run-safetytests/test_cache.py— full-run-safetytests/test_callflow_html.py— full-run-safetytests/test_cargo_introspect.py— full-run-safetytests/test_cargo_missing_manifest.py— full-run-safetytests/test_carried_hyperedge_remap.py— full-run-safetytests/test_case_sensitive_resolution.py— full-run-safetytests/test_charmap_encoding.py— full-run-safetytests/test_chunking.py— full-run-safetytests/test_cjs_module_extension.py— full-run-safetytests/test_claude_cli_backend.py— full-run-safetytests/test_claude_md.py— full-run-safetytests/test_cli_broken_pipe.py— full-run-safetytests/test_cli_export.py— full-run-safetytests/test_cli_help.py— full-run-safetytests/test_cluster.py— full-run-safetytests/test_cobol_extractor.py— full-run-safetytests/test_codebuddy.py— full-run-safetytests/test_community_hub_labels.py— full-run-safetytests/test_community_labels_skill.py— full-run-safetytests/test_confidence.py— full-run-safetytests/test_corrupt_graph_json.py— full-run-safetytests/test_cpp_nested_and_cli.py— full-run-safetytests/test_cpp_objc_cross_file_calls.py— full-run-safetytests/test_cpp_preprocess.py— full-run-safetytests/test_cross_extension_reexport_self_cycle.py— full-run-safetytests/test_cross_language_call_resolution.py— full-run-safetytests/test_cross_repo_external_call_guards.py— full-run-safetytests/test_cross_repo_member_calls.py— full-run-safety- … and 251 more
non-code file(s) changed (
.github/ISSUE_TEMPLATE/bug_report.yml,.github/ISSUE_TEMPLATE/config.yml,.github/ISSUE_TEMPLATE/feature_request.yml,.github/PULL_REQUEST_TEMPLATE.md,AGENTS.md…) → running the full suite for safety (a code graph can't see config/fixture/data deps)
changed code file(s) with no mapped test (
.github/PULL_REQUEST_TEMPLATE.md,AGENTS.md,ARCHITECTURE.md,CODE_OF_CONDUCT.md,CONTRIBUTING.md…) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Follow-up edits on #3845 to match the settled maintainer decisions: - CODE_OF_CONDUCT.md: set the enforcement/reporting contact to safi@graphify.com (was an unspecified 'email the maintainer if known'). - README team-graph section: add the machine-local never-commit list (.graphify_root, .graphify_python, .graphify_analysis.json, the AST cache, needs_update) and the re-extract-to-update note. manifest.json stays committable since #3781 made its keys portable. - Add RELEASING.md (maintainer-facing): version bump + changelog + uv.lock, test on 3.10/3.13, push v8, gh release create -> PyPI via trusted publishing (no twine/token), verify with uvx --refresh. - CONTRIBUTING Further Reading: drop the paid Gumroad link, point at RELEASING.md instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Shipped in v0.9.69 (now on PyPI) via an authorship-preserving cherry-pick, so your commit keeps contributor-graph credit. Thanks @nikhilsaxena04! Landed with policy-alignment edits: CoC reporting contact set to safi@graphify.com, README team-graph never-commit list + update note added, the paid link dropped, and a maintainer-facing RELEASING.md added. Note: your README point that manifest.json is now committable is correct thanks to #3781, so I kept that. Release: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.69 |
What does this PR do?
This PR brings Graphify's repository documentation and GitHub issue templates up to a professional, maintainer-grade community health standard. It formalizes the engineering invariants, corrects factual drift in the architecture docs, and implements strict issue templates to defend maintainer triage time.
Key Changes:
CONTRIBUTING.md: Created a 15-point engineering philosophy explicitly documenting Graphify's invariants (zero-node guard, shrink guard, determinism) and provided a copy-pasteable first-time contributor setup workflow..github/ISSUE_TEMPLATE/: Replaced free-text environment blobs with strict dropdowns (OS, Python version, Install method) and added a mandatory pre-flight checklist to stop duplicate issues answered in the README.CODE_OF_CONDUCT.md: Upgraded the pledge to the full Contributor Covenant v2.1, including strict Scope and Enforcement escalation guidelines.SECURITY.md: Corrected the threat model (acknowledging the LLM network boundary during semantic passes) and softened the strict 48-hour legal SLA to a more sustainable "as soon as possible".ARCHITECTURE.md&README.md: Corrected the false "no shared state" claim and updated thegraphify-out/team setup instructions to properly reflect the gitignore configuration (git add -f).Type of change
Verification & Invariants
How was this tested?
No code logic changes; fully verified all markdown rendering, GitHub YAML template syntax, and cross-document hyperlink references locally.
Graphify-specific checklist
uv run python -m tools.skillgen --bless) when changing their source fragments.