Skip to content

Commit 0795400

Browse files
gyaanclaude
andcommitted
Enrich GitHub repository with community and CI files
- Add GitHub Actions CI workflow (build, vet, test on push/PR) - Add issue templates for bug reports and feature requests - Add pull request template with testing checklist - Add CONTRIBUTING.md with ground rules and contribution guide - Add SECURITY.md with vulnerability disclosure policy - Update README.md with CI/license/dependency badges and links - Add LEARNING.md (RAG concepts walkthrough) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent b13088a commit 0795400

9 files changed

Lines changed: 785 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
labels: [bug]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to fill out this bug report!
9+
10+
- type: textarea
11+
id: description
12+
attributes:
13+
label: Describe the bug
14+
description: A clear and concise description of what the bug is.
15+
placeholder: What happened? What did you expect to happen?
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: reproduction
21+
attributes:
22+
label: Steps to reproduce
23+
description: How can we reproduce the issue?
24+
placeholder: |
25+
1. Run `go run cmd/server/main.go`
26+
2. Send `POST /api/chat` with `{"query": "..."}`
27+
3. Observe error...
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: expected
33+
attributes:
34+
label: Expected behavior
35+
description: What did you expect to happen?
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: logs
41+
attributes:
42+
label: Relevant logs or output
43+
description: Paste any relevant server logs or curl output.
44+
render: shell
45+
46+
- type: dropdown
47+
id: provider
48+
attributes:
49+
label: LLM Provider
50+
options:
51+
- anthropic (Claude)
52+
- openai (GPT)
53+
- N/A
54+
validations:
55+
required: true
56+
57+
- type: input
58+
id: go-version
59+
attributes:
60+
label: Go version
61+
placeholder: "e.g. go1.23.0"
62+
validations:
63+
required: true
64+
65+
- type: input
66+
id: os
67+
attributes:
68+
label: OS
69+
placeholder: "e.g. macOS 15 ARM64, Ubuntu 24.04 x86_64"
70+
validations:
71+
required: true
72+
73+
- type: textarea
74+
id: additional
75+
attributes:
76+
label: Additional context
77+
description: Any other context, screenshots, or information.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Question or Discussion
4+
url: https://github.com/gyaan/knowledge-pipeline/discussions
5+
about: Ask questions and discuss ideas in GitHub Discussions
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Feature Request
2+
description: Suggest an improvement or new feature
3+
labels: [enhancement]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Have an idea to improve the RAG system? We'd love to hear it.
9+
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem statement
14+
description: What problem or limitation are you facing?
15+
placeholder: "I'm trying to do X but..."
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: solution
21+
attributes:
22+
label: Proposed solution
23+
description: Describe the feature or change you'd like to see.
24+
validations:
25+
required: true
26+
27+
- type: dropdown
28+
id: area
29+
attributes:
30+
label: Area
31+
description: Which part of the system does this relate to?
32+
options:
33+
- Embeddings / TF-IDF
34+
- Vector search
35+
- RAG chain
36+
- LLM providers
37+
- Session management
38+
- API / HTTP layer
39+
- Configuration
40+
- Knowledge base ingestion
41+
- Documentation
42+
- Other
43+
validations:
44+
required: true
45+
46+
- type: textarea
47+
id: alternatives
48+
attributes:
49+
label: Alternatives considered
50+
description: Have you considered any alternative approaches?
51+
52+
- type: textarea
53+
id: additional
54+
attributes:
55+
label: Additional context
56+
description: Any other context, references, or examples.

.github/pull_request_template.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Summary
2+
3+
<!-- What does this PR do? Keep it concise. -->
4+
5+
## Type of change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Refactor / cleanup
10+
- [ ] Documentation
11+
- [ ] Other: <!-- describe -->
12+
13+
## Changes
14+
15+
<!-- List the key changes made. -->
16+
17+
-
18+
-
19+
20+
## Testing
21+
22+
<!-- How was this tested? Check all that apply. -->
23+
24+
- [ ] `go build ./...` passes
25+
- [ ] `go vet ./...` passes
26+
- [ ] `go test ./...` passes
27+
- [ ] Manually tested with `go run cmd/server/main.go` + curl queries
28+
- [ ] Dry-run ingestion tested with `go run cmd/ingest/main.go`
29+
30+
## Notes for reviewer
31+
32+
<!-- Anything the reviewer should pay special attention to? -->

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master, main]
6+
pull_request:
7+
branches: [master, main]
8+
9+
jobs:
10+
build:
11+
name: Build & Test
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Go
19+
uses: actions/setup-go@v5
20+
with:
21+
go-version-file: go.mod
22+
23+
- name: Build
24+
run: go build ./...
25+
26+
- name: Vet
27+
run: go vet ./...
28+
29+
- name: Test
30+
run: go test ./...

CONTRIBUTING.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Contributing
2+
3+
Contributions are welcome. This project has zero external dependencies by design — please keep it that way.
4+
5+
## Getting started
6+
7+
```bash
8+
git clone https://github.com/gyaan/knowledge-pipeline.git
9+
cd knowledge-pipeline
10+
cp .env_example .env
11+
# Set ANTHROPIC_API_KEY or OPENAI_API_KEY in .env
12+
go build ./...
13+
go vet ./...
14+
```
15+
16+
## Ground rules
17+
18+
- **No external dependencies.** Pure Go standard library only. No third-party packages.
19+
- **In-memory only.** No external databases or disk persistence in the core pipeline.
20+
- **Standard Go layout.** Keep `cmd/`, `internal/`, `pkg/` conventions.
21+
- **Backwards compatible config.** New environment variables must have sensible defaults so existing `.env` files keep working.
22+
23+
## Making changes
24+
25+
1. Fork the repository and create a branch: `git checkout -b feature/your-feature`
26+
2. Make your changes
27+
3. Run checks before committing:
28+
```bash
29+
go build ./...
30+
go vet ./...
31+
go test ./...
32+
```
33+
4. Manually test with the server:
34+
```bash
35+
go run cmd/server/main.go
36+
curl http://localhost:8080/api/health
37+
```
38+
5. Open a pull request against `master`
39+
40+
## Adding a new LLM provider
41+
42+
1. Implement the `LLMClient` interface in `internal/llm/` (see `claude.go` or `openai.go` for the pattern)
43+
2. Add the new provider to the switch statement in `cmd/server/main.go`
44+
3. Document the new environment variables in `README.md` and `.env_example`
45+
46+
## Adding knowledge base content
47+
48+
Drop `.txt` files into any subdirectory of `knowledge_base/`. The loader picks up all files recursively. The `category` metadata is set from the top-level subdirectory name.
49+
50+
## Reporting issues
51+
52+
Use the [issue templates](https://github.com/gyaan/knowledge-pipeline/issues/new/choose) — they help us understand and reproduce the problem faster.
53+
54+
## License
55+
56+
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).

0 commit comments

Comments
 (0)