Skip to content

docs: comprehensive community health and contributor guide overhaul - #3845

Closed
nikhilsaxena04 wants to merge 4 commits into
Graphify-Labs:v8from
nikhilsaxena04:docs/community-health-overhaul
Closed

nikhilsaxena04 wants to merge 4 commits into
Graphify-Labs:v8from
nikhilsaxena04:docs/community-health-overhaul

Conversation

@nikhilsaxena04

Copy link
Copy Markdown
Contributor

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 the graphify-out/ team setup instructions to properly reflect the gitignore configuration (git add -f).

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Tests or CI
  • Refactor
  • Security fix

Verification & Invariants

  • Read the CONTRIBUTING.md guide.
  • Reproduced the issue and identified the invariant.
  • Made the smallest fix necessary.
  • Added a regression test (if bug fix) or isolated boundary test.
  • Kept the PR description synchronized with the final implementation.
  • Documented any limitations / unsupported cases explicitly.

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

  • I updated generated skill artifacts (uv run python -m tools.skillgen --bless) when changing their source fragments.
  • I confirmed that AST/structural extraction remains deterministic (no ambient state dependencies like ENV variables).
  • I reviewed changes for security implications (no unsafe interpolation into shell/Python).
  • I confirmed no API keys or local-only graph data are included.
  • (If applicable) I disclosed AI authorship in my commit messages.

@nikhilsaxena04

Copy link
Copy Markdown
Contributor Author

Hey @safishamsi PR is up! As discussed, this completely overhauls the repository documentation, sets up a proper CONTRIBUTING.md (with all the core invariants explicitly documented), and tightens up the GitHub issue/PR templates so you spend less time triaging.

I made the executive calls on the minor policies so it wouldn't block you. Let me know if anything needs a tweak!

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-safety
  • tests/test_affected_member_seed.py — full-run-safety
  • tests/test_agents_platform.py — full-run-safety
  • tests/test_analyze.py — full-run-safety
  • tests/test_anthropic_custom_endpoint.py — full-run-safety
  • tests/test_antigravity_install.py — full-run-safety
  • tests/test_apm_fallback_version.py — full-run-safety
  • tests/test_architecture_doc.py — full-run-safety
  • tests/test_astro_extraction.py — full-run-safety
  • tests/test_astro_import_ids.py — full-run-safety
  • tests/test_atomic_canvas_export.py — full-run-safety
  • tests/test_atomic_version_stamp.py — full-run-safety
  • tests/test_atomic_writes.py — full-run-safety
  • tests/test_backend_env_isolation.py — full-run-safety
  • tests/test_backend_extras.py — full-run-safety
  • tests/test_benchmark.py — full-run-safety
  • tests/test_benchmark_raw_graph.py — full-run-safety
  • tests/test_build.py — full-run-safety
  • tests/test_build_merge_dedup_scope.py — full-run-safety
  • tests/test_build_merge_hyperedges_and_prune.py — full-run-safety
  • tests/test_build_merge_shrink_guard.py — full-run-safety
  • tests/test_builtin_global_type_refs.py — full-run-safety
  • tests/test_cache.py — full-run-safety
  • tests/test_callflow_html.py — full-run-safety
  • tests/test_cargo_introspect.py — full-run-safety
  • tests/test_cargo_missing_manifest.py — full-run-safety
  • tests/test_carried_hyperedge_remap.py — full-run-safety
  • tests/test_case_sensitive_resolution.py — full-run-safety
  • tests/test_charmap_encoding.py — full-run-safety
  • tests/test_chunking.py — full-run-safety
  • tests/test_cjs_module_extension.py — full-run-safety
  • tests/test_claude_cli_backend.py — full-run-safety
  • tests/test_claude_md.py — full-run-safety
  • tests/test_cli_broken_pipe.py — full-run-safety
  • tests/test_cli_export.py — full-run-safety
  • tests/test_cli_help.py — full-run-safety
  • tests/test_cluster.py — full-run-safety
  • tests/test_cobol_extractor.py — full-run-safety
  • tests/test_codebuddy.py — full-run-safety
  • tests/test_community_hub_labels.py — full-run-safety
  • tests/test_community_labels_skill.py — full-run-safety
  • tests/test_confidence.py — full-run-safety
  • tests/test_corrupt_graph_json.py — full-run-safety
  • tests/test_cpp_nested_and_cli.py — full-run-safety
  • tests/test_cpp_objc_cross_file_calls.py — full-run-safety
  • tests/test_cpp_preprocess.py — full-run-safety
  • tests/test_cross_extension_reexport_self_cycle.py — full-run-safety
  • tests/test_cross_language_call_resolution.py — full-run-safety
  • tests/test_cross_repo_external_call_guards.py — full-run-safety
  • tests/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.

safishamsi added a commit that referenced this pull request Sep 26, 2026
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>
@safishamsi

Copy link
Copy Markdown
Member

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

@safishamsi safishamsi closed this Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants