Skip to content

Commit 460fd93

Browse files
Remove deprecated files and add documentation for project contributions
- Deleted the .env.example and tsconfig.json files as they are no longer needed. - Introduced AGENTS.md and README.md to provide guidance on project contributions and usage. - Updated package.json to streamline scripts and improve project setup. - Added pre-commit hook for validation of results.json to ensure data integrity. - Removed large JSON files related to funding and joined results to declutter the repository.
1 parent c0efebb commit 460fd93

34 files changed

+1245
-234786
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: add-resource-with-tags
3+
description: Guides contributors through adding or updating a tool/resource in output/results.json and choosing tags from output/taxonomy.json. Use when the user wants to add a new resource, suggest tags, or update an existing resource entry.
4+
---
5+
6+
# Add a resource (with tags)
7+
8+
## Inputs to collect (ask for anything missing)
9+
- Resource name
10+
- 1-3 sentence description
11+
- Website URL (optional)
12+
- Twitter/X URL (optional)
13+
- Square thumbnail icon URL (optional)
14+
- Wide banner URL (optional)
15+
- GitHub repo and/or NPM package URL(s) (at least one)
16+
- llms.txt URL (optional)
17+
- Suggested category (must match `output/taxonomy.json`)
18+
19+
## Tagging workflow (use `output/taxonomy.json`)
20+
1. Read `output/taxonomy.json` and load the top-level `tags` list.
21+
2. Propose **3-8 tags** from that list based on the resource description and repos.
22+
- Prefer more specific tags (e.g. `static-analysis`, `account-abstraction`) over generic ones.
23+
- Keep tags kebab-case.
24+
- Target having at least 2-3 tags.
25+
3. If the user wants a **new tag**:
26+
- Add it to `output/taxonomy.json` under `tags`.
27+
- Apply it to **all existing resources** in `output/results.json` where it clearly fits (avoid one-off tags).
28+
## Editing `output/results.json`
29+
- Keep the file valid JSON (array of objects).
30+
- For a **new entry**, add an object with (at minimum):
31+
- `id`: use `manually-added:<slug>` where `<slug>` is a kebab-case version of the name
32+
- `name`, `description`, `repos`, `tags`, `category`
33+
- optional: `website`, `twitter`, `thumbnail_url`, `banner_url`, `llms_txt_url`
34+
- For an **update**, locate the existing object (prefer matching by `id`) and change only the necessary fields.
35+
## Quick validation checklist
36+
- Tags are all present in `output/taxonomy.json` `tags`.
37+
- Category matches a taxonomy category name.
38+
- `repos` contains at least one valid GitHub URL.
39+
- JSON remains valid.
40+
## Output format
41+
When responding, provide:
42+
- the proposed `tags` list
43+
- the `category`
44+
- the exact JSON object to insert/update (ready to paste)
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: add-resource-with-tags
3+
description: Guides contributors through adding or updating a tool/resource in output/results.json and choosing tags from output/taxonomy.json. Use when the user wants to add a new resource, suggest tags, or update an existing resource entry.
4+
---
5+
6+
# Add a resource (with tags)
7+
8+
## Inputs to collect (ask for anything missing)
9+
- Resource name
10+
- 1-3 sentence description
11+
- Website URL (optional)
12+
- Twitter/X URL (optional)
13+
- Square thumbnail icon URL (optional)
14+
- Wide banner URL (optional)
15+
- GitHub repo and/or NPM package URL(s) (at least one)
16+
- llms.txt URL (optional)
17+
- Suggested category (must match `output/taxonomy.json`)
18+
19+
## Tagging workflow (use `output/taxonomy.json`)
20+
1. Read `output/taxonomy.json` and load the top-level `tags` list.
21+
2. Propose **3-8 tags** from that list based on the resource description and repos.
22+
- Prefer more specific tags (e.g. `static-analysis`, `account-abstraction`) over generic ones.
23+
- Keep tags kebab-case.
24+
- Target having at least 2-3 tags.
25+
3. If the user wants a **new tag**:
26+
- Add it to `output/taxonomy.json` under `tags`.
27+
- Apply it to **all existing resources** in `output/results.json` where it clearly fits (avoid one-off tags).
28+
## Editing `output/results.json`
29+
- Keep the file valid JSON (array of objects).
30+
- For a **new entry**, add an object with (at minimum):
31+
- `id`: use `manually-added:<slug>` where `<slug>` is a kebab-case version of the name
32+
- `name`, `description`, `repos`, `tags`, `category`
33+
- optional: `website`, `twitter`, `thumbnail_url`, `banner_url`, `llms_txt_url`
34+
- For an **update**, locate the existing object (prefer matching by `id`) and change only the necessary fields.
35+
## Quick validation checklist
36+
- Tags are all present in `output/taxonomy.json` `tags`.
37+
- Category matches a taxonomy category name.
38+
- `repos` contains at least one valid GitHub URL.
39+
- JSON remains valid.
40+
## Output format
41+
When responding, provide:
42+
- the proposed `tags` list
43+
- the `category`
44+
- the exact JSON object to insert/update (ready to paste)

.env.example

Lines changed: 0 additions & 4 deletions
This file was deleted.

.githooks/pre-commit

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env sh
2+
set -e
3+
4+
node scripts/validate-results.mjs
5+
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: Suggest a project
2+
description: Suggest a project to add to the Developer Tooling list
3+
title: "Add project: <name>"
4+
labels: ["project"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for the suggestion!
10+
11+
- If you want to contribute a PR, you can also directly edit `output/results.json`.
12+
- To see which tags and categories exist, check `output/taxonomy.json`.
13+
14+
- type: markdown
15+
attributes:
16+
value: "## Project info"
17+
18+
- type: input
19+
id: name
20+
attributes:
21+
label: Project name
22+
validations:
23+
required: true
24+
25+
- type: textarea
26+
id: description
27+
attributes:
28+
label: Short description
29+
description: What does it do? 1-3 sentences is perfect.
30+
validations:
31+
required: true
32+
33+
- type: input
34+
id: website
35+
attributes:
36+
label: Website URL (optional)
37+
placeholder: https://example.com
38+
39+
- type: input
40+
id: llms_txt_url
41+
attributes:
42+
label: LLMs Text URL (optional)
43+
placeholder: https://example.com/llms.txt
44+
45+
- type: input
46+
id: thumbnail_url
47+
attributes:
48+
label: Thumbnail image URL (optional)
49+
description: Square-ish image used as icon in lists/cards.
50+
placeholder: https://example.com/thumbnail.png
51+
52+
- type: input
53+
id: banner_url
54+
attributes:
55+
label: Banner image URL (optional)
56+
description: Wide image used in headers/hero areas.
57+
placeholder: https://example.com/banner.png
58+
59+
- type: input
60+
id: twitter
61+
attributes:
62+
label: Twitter / X URL (optional)
63+
placeholder: https://x.com/…
64+
65+
- type: textarea
66+
id: repos
67+
attributes:
68+
label: GitHub repo or NPM package URL(s)
69+
description: Provide at least one repo or NPM package URL. One per line is fine.
70+
placeholder: |
71+
https://github.com/org/repo
72+
https://github.com/org/another-repo
73+
https://www.npmjs.com/package/package-name
74+
https://www.npmjs.com/package/another-package-name
75+
validations:
76+
required: true
77+
78+
- type: textarea
79+
id: tags
80+
attributes:
81+
label: Tags
82+
description: List tag slugs (kebab-case). Use tags from `output/taxonomy.json`. If you think a new tag is needed, propose it here.
83+
placeholder: |
84+
foundry
85+
security
86+
static-analysis
87+
validations:
88+
required: true
89+
90+
- type: input
91+
id: category
92+
attributes:
93+
label: Category
94+
description: Must match a category name from `output/taxonomy.json`.
95+
validations:
96+
required: true
97+
98+
- type: checkboxes
99+
id: confirmations
100+
attributes:
101+
label: Confirmations
102+
options:
103+
- label: I checked `output/taxonomy.json` for existing tags and categories
104+
required: true
105+
- label: I provided at least one GitHub repo or NPM package URL
106+
required: true
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Update a project
2+
description: Request updates to an existing project entry
3+
title: "Update project: <name or id>"
4+
labels: ["project"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Use this form to update an existing entry in `output/results.json`.
10+
11+
Tip: include the project's `id` if you can find it in `output/results.json`.
12+
13+
- type: input
14+
id: project_id
15+
attributes:
16+
label: Project id (preferred)
17+
description: Copy from `output/results.json` (e.g. `manually-added:some-project`)
18+
placeholder: manually-added:some-project
19+
20+
- type: input
21+
id: project_name
22+
attributes:
23+
label: Project name (if id unknown)
24+
25+
- type: input
26+
id: repo_url
27+
attributes:
28+
label: GitHub repo URL (helps us find the entry)
29+
placeholder: https://github.com/org/repo
30+
31+
- type: input
32+
id: llms_txt_url
33+
attributes:
34+
label: LLMs Text URL (optional)
35+
placeholder: https://example.com/llms.txt
36+
37+
- type: input
38+
id: thumbnail_url
39+
attributes:
40+
label: Thumbnail image URL (optional)
41+
description: Square-ish image used as icon in lists/cards.
42+
placeholder: https://example.com/thumbnail.png
43+
44+
- type: input
45+
id: banner_url
46+
attributes:
47+
label: Banner image URL (optional)
48+
description: Wide image used in headers/hero areas.
49+
placeholder: https://example.com/banner.png
50+
51+
- type: checkboxes
52+
id: fields
53+
attributes:
54+
label: What do you want to update?
55+
options:
56+
- label: Name
57+
- label: Description
58+
- label: Repos
59+
- label: Website / social links
60+
- label: Tags
61+
- label: Category
62+
- label: Images (thumbnail/banner)
63+
validations:
64+
required: true
65+
66+
- type: textarea
67+
id: requested_changes
68+
attributes:
69+
label: Requested changes
70+
description: Include the new values you want, and (if helpful) the current values you're replacing.
71+
placeholder: |
72+
- Description: update to "..."\n
73+
- Tags: add `security`, remove `cli`\n
74+
- Category: change to "Security, Testing & Formal Verification"
75+
validations:
76+
required: true
77+
78+
- type: checkboxes
79+
id: confirmations
80+
attributes:
81+
label: Confirmations
82+
options:
83+
- label: I checked `output/taxonomy.json` for valid tags and categories (if changing them)
84+
required: true

.github/pull_request_template.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## What changed?
2+
- [ ] Add a project
3+
- [ ] Update a project
4+
- [ ] Update taxonomy (tags/categories)
5+
6+
## Before you submit
7+
8+
### Prefer issues first
9+
If you’re not sure about tags/categories, please open an issue first (see the issue templates) and we’ll help.
10+
11+
### Editing projects manually (recommended)
12+
You can submit changes by directly editing:
13+
- `output/results.json` (the list of projects)
14+
15+
To see what tags and categories exist, check:
16+
- `output/taxonomy.json`
17+
18+
### Using the helper script (optional)
19+
This repo includes a shared AI skill to help choose tags:
20+
- `.cursor/skills/add-project-with-tags/SKILL.md`
21+
22+
The `npm run project:add` script is deprecated.
23+
24+
## Tag rules
25+
- **Use existing tags**: tags in `output/results.json` should come from `output/taxonomy.json` and be kebab-case.
26+
- **Suggesting a new tag is allowed** if you also:\n - add the tag to `output/taxonomy.json`, and\n - update **all projects** in `output/results.json` that the tag applies to (so we don’t create one-off tags).
27+
28+
## Checklist
29+
- [ ] `output/results.json` is valid JSON after my changes
30+
- [ ] Added/updated entries include: `id`, `name`, `description`, `repos`, `tags`, `category` (plus optional links)
31+
- [ ] My `tags` are in `output/taxonomy.json` (or I added them and applied them everywhere relevant)
32+
- [ ] My `category` matches one of `output/taxonomy.json` categories
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: add-resource-with-tags
3+
description: Guides contributors through adding or updating a tool/resource in output/results.json and choosing tags from output/taxonomy.json. Use when the user wants to add a new resource, suggest tags, or update an existing resource entry.
4+
---
5+
6+
# Add a resource (with tags)
7+
8+
## Inputs to collect (ask for anything missing)
9+
- Resource name
10+
- 1-3 sentence description
11+
- Website URL (optional)
12+
- Twitter/X URL (optional)
13+
- Square thumbnail icon URL (optional)
14+
- Wide banner URL (optional)
15+
- GitHub repo and/or NPM package URL(s) (at least one)
16+
- llms.txt URL (optional)
17+
- Suggested category (must match `output/taxonomy.json`)
18+
19+
## Tagging workflow (use `output/taxonomy.json`)
20+
1. Read `output/taxonomy.json` and load the top-level `tags` list.
21+
2. Propose **3-8 tags** from that list based on the resource description and repos.
22+
- Prefer more specific tags (e.g. `static-analysis`, `account-abstraction`) over generic ones.
23+
- Keep tags kebab-case.
24+
- Target having at least 2-3 tags.
25+
3. If the user wants a **new tag**:
26+
- Add it to `output/taxonomy.json` under `tags`.
27+
- Apply it to **all existing resources** in `output/results.json` where it clearly fits (avoid one-off tags).
28+
## Editing `output/results.json`
29+
- Keep the file valid JSON (array of objects).
30+
- For a **new entry**, add an object with (at minimum):
31+
- `id`: use `manually-added:<slug>` where `<slug>` is a kebab-case version of the name
32+
- `name`, `description`, `repos`, `tags`, `category`
33+
- optional: `website`, `twitter`, `thumbnail_url`, `banner_url`, `llms_txt_url`
34+
- For an **update**, locate the existing object (prefer matching by `id`) and change only the necessary fields.
35+
## Quick validation checklist
36+
- Tags are all present in `output/taxonomy.json` `tags`.
37+
- Category matches a taxonomy category name.
38+
- `repos` contains at least one valid GitHub URL.
39+
- JSON remains valid.
40+
## Output format
41+
When responding, provide:
42+
- the proposed `tags` list
43+
- the `category`
44+
- the exact JSON object to insert/update (ready to paste)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Validate results.json
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "output/results.json"
7+
- "output/taxonomy.json"
8+
- "scripts/validate-results.mjs"
9+
push:
10+
branches:
11+
- main
12+
paths:
13+
- "output/results.json"
14+
- "output/taxonomy.json"
15+
- "scripts/validate-results.mjs"
16+
17+
jobs:
18+
validate:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: actions/setup-node@v4
24+
with:
25+
node-version: "20"
26+
27+
- run: node scripts/validate-results.mjs
28+

0 commit comments

Comments
 (0)