Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ contact_links:
- name: Report a security vulnerability
url: https://github.com/anusbutt/Graph_Keeper/security/advisories/new
about: Send suspected vulnerabilities privately instead of opening a public issue.
- name: Ask a question or discuss an idea
url: https://github.com/anusbutt/Graph_Keeper/discussions
about: Use Q&A, Ideas, or Design discussions before opening an actionable work item.
- name: Read installation and usage guidance
url: https://github.com/anusbutt/Graph_Keeper#readme
about: Check prerequisites, supported platforms, commands, and recovery guidance.
13 changes: 12 additions & 1 deletion .github/SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,23 @@ the [contributor guide](../CONTRIBUTING.md) when working from source. Include th
GraphKeeper, Node.js, npm, Git, jq, shell, and operating-system versions when asking
for help.

- Use [Q&A](https://github.com/anusbutt/Graph_Keeper/discussions/categories/q-a)
for installation, usage, recovery, and integration questions.
- Use [Ideas](https://github.com/anusbutt/Graph_Keeper/discussions/categories/ideas)
or [Design discussions](https://github.com/anusbutt/Graph_Keeper/discussions/categories/design-discussions)
for open-ended proposals and architecture tradeoffs before implementation is scoped.
- Use [Show and tell](https://github.com/anusbutt/Graph_Keeper/discussions/categories/show-and-tell)
to share a repository workflow, experiment, or lesson learned.
- Use the [bug report form](https://github.com/anusbutt/Graph_Keeper/issues/new?template=bug_report.yml)
for reproducible incorrect behavior or diagnostic mismatches.
- Use the [feature request form](https://github.com/anusbutt/Graph_Keeper/issues/new?template=feature_request.yml)
for bounded product proposals with evidence and tradeoffs.
for bounded product proposals with evidence, tradeoffs, and a clear finish line.
- Follow [SECURITY.md](SECURITY.md) and report suspected vulnerabilities privately.

Discussion does not commit GraphKeeper to a roadmap change. Once an idea has an
accepted direction and actionable scope, track the implementation in an issue and
link the resulting pull request.

Before opening an issue, remove secrets and unnecessary personal data from graph
records, evidence, command output, and diagnostics. This open-source project does not
provide a private help desk, guaranteed response time, or support for native
Expand Down
17 changes: 17 additions & 0 deletions .github/repository-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,23 @@ squash merging so each pull request has one reviewable integration commit.
| `breaking-schema` | Incompatible record interpretation |
| `good first issue` | Bounded work with explicit acceptance checks |

## Discussions

Repository Discussions are enabled for open community conversation. Keep these
categories:

- `Announcements` for maintainer and release news
- `Q&A` for installation, usage, recovery, and integration help
- `Ideas` for possible improvements that are not yet roadmap commitments
- `Design discussions` for architecture, tradeoffs, and future boundaries
- `Show and tell` for real repository workflows and experiments

Pin
[`Welcome to GraphKeeper Discussions`](https://github.com/anusbutt/Graph_Keeper/discussions/6)
globally. Route reproducible bugs and accepted, bounded work to Issues; route suspected
vulnerabilities to private security reporting. An accepted discussion direction must
be summarized as an actionable issue before implementation begins.

## Branch protection and required status checks

Protect `main` with these required status checks:
Expand Down
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,13 @@ publication depend on temporary workstation load.

## Pull requests and labels

A question, early idea, or unresolved architecture tradeoff belongs in
[GitHub Discussions](https://github.com/anusbutt/Graph_Keeper/discussions). Discussion
does not authorize implementation or commit the project to a roadmap change. Once the
maintainer accepts a direction, summarize the actionable scope in an issue before
opening a pull request. Link the pull request with `Closes #<issue>` when it fully
resolves that work.

A pull request must explain the user-visible outcome, include failing-then-passing
tests, update documentation, state schema compatibility, and confirm constitutional
compliance. Include observed commands and results. Never hide skipped tests or weaken
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,13 @@ When linear JSON scans or concurrent-write collisions become material, a future

## Contributing and release status

Use [GitHub Discussions](https://github.com/anusbutt/Graph_Keeper/discussions) for
usage questions, early ideas, architecture conversations, and real-world show-and-tell.
Use [GitHub Issues](https://github.com/anusbutt/Graph_Keeper/issues) for reproducible
bugs and clearly bounded work. The
[pinned welcome discussion](https://github.com/anusbutt/Graph_Keeper/discussions/6)
explains the categories and how an accepted direction becomes an actionable issue.

See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the development workflow, extension points,
and boundaries, [`SUPPORT.md`](.github/SUPPORT.md) for usage help, and
[`SECURITY.md`](.github/SECURITY.md) for private vulnerability reporting. Version
Expand Down
8 changes: 8 additions & 0 deletions tests/integration/contributor-docs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ test('issue and pull-request templates require actionable engineering context',
const issueConfig = await read('.github/ISSUE_TEMPLATE/config.yml');
assert.match(issueConfig, /blank_issues_enabled:\s*false/);
assert.match(issueConfig, /security\/advisories\/new/);
assert.match(issueConfig, /github\.com\/anusbutt\/Graph_Keeper\/discussions/);

const security = await read('.github/SECURITY.md');
assert.match(security, /supported versions.*latest published/is);
Expand All @@ -138,8 +139,13 @@ test('issue and pull-request templates require actionable engineering context',

const support = await read('.github/SUPPORT.md');
assert.match(support, /README.*contributor guide/is);
assert.match(support, /Q&A.*Ideas.*Design discussions.*Show and tell/is);
assert.match(support, /bug report.*feature request/is);
assert.match(support, /SECURITY\.md/);

const guide = await read('CONTRIBUTING.md');
assert.match(guide, /GitHub Discussions.*does not authorize implementation/is);
assert.match(guide, /accepts? a direction.*actionable scope.*issue/is);
});

test('CI and repository settings cover all supported platforms and governance', async () => {
Expand All @@ -164,6 +170,8 @@ test('CI and repository settings cover all supported platforms and governance',
assert.match(settings, /Description/);
assert.match(settings, /Topics/);
assert.match(settings, /Labels/);
assert.match(settings, /Discussions.*Announcements.*Q&A.*Ideas.*Design discussions.*Show and tell/is);
assert.match(settings, /Welcome to GraphKeeper Discussions/);
assert.match(settings, /Default branch.*main/is);
assert.match(settings, /Branch protection.*required status checks/is);
assert.match(settings, /quality-ubuntu.*quality-macos.*quality-windows/is);
Expand Down
1 change: 1 addition & 0 deletions tests/integration/release-docs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ test('release README covers onboarding, operation, recovery, limits, and future
/graphkeeper doctor/,
/Native PowerShell is not supported/i,
/## Recovery and adoption/,
/github\.com\/anusbutt\/Graph_Keeper\/discussions/,
/10,000 claims, 2,000 entities, and 1,000 runs/,
/SQLite or PostgreSQL/,
]) assert.match(readme, contract);
Expand Down
Loading