Compare commits
2 Commits
25c438360d
...
4ed98fa30f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ed98fa30f | ||
|
|
617d4a970f |
12
CHANGELOG.md
Normal file
12
CHANGELOG.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to the Codex Agent Repository Kit are documented here.
|
||||
|
||||
## 1.0.0 - 2026-05-15
|
||||
|
||||
- Added universal repository baseline templates for Codex-assisted projects.
|
||||
- Added agent quickstart, new repository, and existing project workflows.
|
||||
- Added optional Gitea workflow templates for build, security scanning, cleanup, dependency checks, release dry runs, and template compliance.
|
||||
- Added stack profiles for Node, Electron, Python, Docker, and static sites.
|
||||
- Added guidance for dynamic repository owners, safe task-start syncs, release artifact exclusions, and context token conservation.
|
||||
- Removed hard-coded private Gitea instance URLs from reusable templates.
|
||||
16
README.md
16
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
Reusable baseline files for repositories that should be easy for Codex agents to inspect, modify, build, review, and release.
|
||||
|
||||
The kit has two modes:
|
||||
The kit has three entry points:
|
||||
|
||||
- `agent-quickstart.md`: shortest prompts and decision tree for Codex agents.
|
||||
- `new-repository.md`: agent workflow for a fresh repository.
|
||||
@@ -106,10 +106,19 @@ ARTIFACT_OUTPUT_DIRECTORY
|
||||
AUTHOR_NAME
|
||||
PROJECT_STACK
|
||||
DOWNLOAD_URL
|
||||
CI_URL
|
||||
RELEASES_URL
|
||||
GITEA_SERVER_URL
|
||||
BUILD_COMMAND
|
||||
TEST_COMMAND
|
||||
LINT_COMMAND
|
||||
AUDIT_COMMAND
|
||||
README_COMMAND
|
||||
INSTALL_COMMAND
|
||||
DEV_COMMAND
|
||||
PACKAGE_MANAGER
|
||||
PROJECT_VERSION
|
||||
COMMIT_OR_VERSION
|
||||
```
|
||||
|
||||
If a placeholder does not apply, remove it instead of inventing fake information.
|
||||
@@ -127,6 +136,7 @@ When applying this kit, an agent should:
|
||||
- read `manifest.json` first,
|
||||
- choose `new-repository.md` or `existing-project.md`,
|
||||
- read matching `profiles/*.md` guidance after detecting the stack,
|
||||
- conserve context tokens by searching first, reading only relevant files, summarizing large outputs, and avoiding generated folders, dependency folders, build outputs, or full logs unless directly relevant,
|
||||
- at the start of each user-requested task, check for upstream repository updates and apply them immediately with a safe fast-forward pull when the working tree is clean,
|
||||
- check `git status --short` before editing,
|
||||
- preserve unrelated user changes,
|
||||
@@ -208,14 +218,14 @@ It verifies required agent context files, unresolved placeholders, README divide
|
||||
|
||||
## Gitea API Token
|
||||
|
||||
When working with private repositories on `git.wilkensxl.de`, Codex agents may find a local `GITEA_TOKEN` environment variable on the machine.
|
||||
When working with private Gitea repositories, Codex agents may find a local `GITEA_TOKEN` environment variable on the machine.
|
||||
|
||||
Use `GITEA_TOKEN` only for read-oriented Gitea API checks unless the user explicitly asks for a write action. Typical safe checks include repository metadata, workflow run status, and package-read visibility. Never print the token, commit it, or copy it into workflow files.
|
||||
|
||||
Example status endpoint:
|
||||
|
||||
```text
|
||||
GET https://git.wilkensxl.de/api/v1/repos/REPOSITORY_OWNER/REPOSITORY_NAME/actions/runs
|
||||
GET GITEA_SERVER_URL/api/v1/repos/REPOSITORY_OWNER/REPOSITORY_NAME/actions/runs
|
||||
Authorization: token GITEA_TOKEN
|
||||
```
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ Read manifest.json first.
|
||||
Use its copyMap for file destinations.
|
||||
Use new-repository.md or existing-project.md as the task workflow.
|
||||
Use matching profiles/*.md guidance after detecting the stack.
|
||||
Conserve context tokens: search first, read only relevant files, summarize large outputs, and avoid generated folders, dependency folders, build outputs, or full logs unless directly relevant.
|
||||
At the start of each user-requested task, check for upstream repository updates and apply them immediately with a safe fast-forward pull when the working tree is clean.
|
||||
If local changes exist, do not overwrite them; fetch or report the blocker before editing.
|
||||
For releasable projects, add or preserve scheduled security automation.
|
||||
@@ -72,6 +73,10 @@ Does a stack profile match?
|
||||
yes -> read the matching profiles/*.md file and adapt commands carefully
|
||||
no -> continue with universal rules only
|
||||
|
||||
Can you answer the next question with targeted search or a small file slice?
|
||||
yes -> use that instead of loading whole directories or long logs
|
||||
no -> read the smallest complete file set that preserves correctness
|
||||
|
||||
Does the project already have README structure?
|
||||
yes -> preserve it; only add blueprint files if useful
|
||||
no -> add blueprint.md and blueprint.json with the rainbow section-line divider
|
||||
|
||||
@@ -33,6 +33,8 @@ git pull --ff-only
|
||||
|
||||
If local changes exist, do not overwrite them. Fetch or report the blocker before editing.
|
||||
|
||||
Conserve context tokens while inspecting: start with targeted searches and file lists, then read only files that affect the retrofit decision. Do not load generated folders, dependency folders, build outputs, or full logs unless they are directly relevant.
|
||||
|
||||
Read:
|
||||
|
||||
```text
|
||||
@@ -177,7 +179,7 @@ Before final response:
|
||||
|
||||
- run `git diff --check`,
|
||||
- run the smallest reliable verification command,
|
||||
- if using Gitea Actions, poll the pushed workflow run until it reaches a terminal state; for private `git.wilkensxl.de` repositories, use a locally set `GITEA_TOKEN` for read-only API status checks when available,
|
||||
- if using Gitea Actions, poll the pushed workflow run until it reaches a terminal state; for private Gitea repositories, use a locally set `GITEA_TOKEN` and `GITEA_SERVER_URL` for read-only API status checks when available,
|
||||
- if the pushed workflow fails or is cancelled, inspect the failing job/logs, fix in scope, push again, and repeat the workflow check loop; fixing and pushing is not a stopping point,
|
||||
- list files changed,
|
||||
- mention any skipped checks,
|
||||
|
||||
@@ -8,6 +8,7 @@ PROJECT_NAME: PROJECT_DESCRIPTION
|
||||
|
||||
- Start by reading `manifest.json`, then the workflow file that matches the task: `new-repository.md` for fresh repos or `existing-project.md` for retrofit work.
|
||||
- Use the matching `profiles/*.md` file when the repository stack is detected. Profiles are guidance, not permission to ignore existing project conventions.
|
||||
- Conserve context tokens: search with `rg` or targeted file lists first, read only the files needed for the task, summarize large outputs instead of pasting them, and avoid loading generated folders, dependency folders, build outputs, or full logs unless they are directly relevant.
|
||||
- Follow the `manifest.json` copy map for source and target paths. Do not invent alternate locations unless the target repository already has an equivalent convention.
|
||||
- Prefer existing project patterns over new abstractions.
|
||||
- Keep changes scoped to the user's request.
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
{
|
||||
"alt": "Build",
|
||||
"img": "https://img.shields.io/badge/build-Gitea%20Runner-2563eb",
|
||||
"url": "https://git.wilkensxl.de/REPOSITORY_OWNER/REPOSITORY_NAME/actions"
|
||||
"url": "CI_URL"
|
||||
},
|
||||
{
|
||||
"alt": "Version",
|
||||
"img": "https://img.shields.io/badge/version-0.1.0-111827",
|
||||
"url": "https://git.wilkensxl.de/REPOSITORY_OWNER/REPOSITORY_NAME/releases"
|
||||
"url": "RELEASES_URL"
|
||||
}
|
||||
],
|
||||
"headingPrefix": {
|
||||
@@ -27,4 +27,3 @@
|
||||
],
|
||||
"text": "PROJECT_DESCRIPTION"
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
if [ -z "${repository_owner}" ] || [ "${repository_owner}" = "${GITHUB_REPOSITORY}" ]; then
|
||||
repository_owner="REPOSITORY_OWNER"
|
||||
fi
|
||||
gitea_server="${GITHUB_SERVER_URL:-https://git.wilkensxl.de}"
|
||||
gitea_server="${GITHUB_SERVER_URL:-GITEA_SERVER_URL}"
|
||||
gitea_server="${gitea_server%/}"
|
||||
package_dir="package-registry"
|
||||
latest_url="${gitea_server}/api/packages/${repository_owner}/generic/${package_name}/latest"
|
||||
|
||||
@@ -33,8 +33,8 @@ jobs:
|
||||
fi
|
||||
done
|
||||
|
||||
placeholder_paths=(README.md AGENTS.md .codex docs)
|
||||
placeholder_pattern='PROJECT_NAME|PROJECT_DESCRIPTION|REPOSITORY_OWNER|REPOSITORY_NAME|PACKAGE_NAME|ARTIFACT_NAME|ARTIFACT_OUTPUT_DIRECTORY|DOWNLOAD_URL|BUILD_COMMAND|TEST_COMMAND|LINT_COMMAND|AUDIT_COMMAND'
|
||||
placeholder_paths=(README.md AGENTS.md .codex docs .gitea)
|
||||
placeholder_pattern='PROJECT_NAME|PROJECT_DESCRIPTION|REPOSITORY_OWNER|REPOSITORY_NAME|PACKAGE_NAME|ARTIFACT_NAME|ARTIFACT_OUTPUT_DIRECTORY|DOWNLOAD_URL|CI_URL|RELEASES_URL|GITEA_SERVER_URL|BUILD_COMMAND|TEST_COMMAND|LINT_COMMAND|AUDIT_COMMAND|COMMIT_OR_VERSION'
|
||||
|
||||
for path in "${placeholder_paths[@]}"; do
|
||||
[ -e "$path" ] || continue
|
||||
|
||||
@@ -53,8 +53,8 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
found=0
|
||||
paths=(AGENTS.md README.md SECURITY.md CHANGELOG.md .codex docs blueprint.md blueprint.json)
|
||||
pattern='PROJECT_NAME|PROJECT_DESCRIPTION|REPOSITORY_OWNER|REPOSITORY_NAME|PACKAGE_NAME|ARTIFACT_NAME|ARTIFACT_OUTPUT_DIRECTORY|AUTHOR_NAME|PROJECT_STACK|DOWNLOAD_URL|BUILD_COMMAND|TEST_COMMAND|LINT_COMMAND|AUDIT_COMMAND|README_COMMAND|INSTALL_COMMAND|DEV_COMMAND|PACKAGE_MANAGER|PROJECT_VERSION'
|
||||
paths=(AGENTS.md README.md SECURITY.md CHANGELOG.md .codex docs .gitea blueprint.md blueprint.json)
|
||||
pattern='PROJECT_NAME|PROJECT_DESCRIPTION|REPOSITORY_OWNER|REPOSITORY_NAME|PACKAGE_NAME|ARTIFACT_NAME|ARTIFACT_OUTPUT_DIRECTORY|AUTHOR_NAME|PROJECT_STACK|DOWNLOAD_URL|CI_URL|RELEASES_URL|GITEA_SERVER_URL|BUILD_COMMAND|TEST_COMMAND|LINT_COMMAND|AUDIT_COMMAND|README_COMMAND|INSTALL_COMMAND|DEV_COMMAND|PACKAGE_MANAGER|PROJECT_VERSION|COMMIT_OR_VERSION'
|
||||
|
||||
for path in "${paths[@]}"; do
|
||||
[ -e "$path" ] || continue
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"agentResponsibilities": [
|
||||
"Read manifest.json before copying files.",
|
||||
"Use copyMap target paths unless the repository already has an equivalent convention.",
|
||||
"Conserve context tokens by searching first, reading only relevant files, summarizing large outputs, and avoiding generated folders, dependency folders, build outputs, or full logs unless directly relevant.",
|
||||
"At the start of each user-requested task, check for upstream repository updates and apply them immediately with a safe fast-forward pull when the working tree is clean.",
|
||||
"Check git status before editing and before finishing.",
|
||||
"Preserve unrelated user changes.",
|
||||
@@ -191,6 +192,9 @@
|
||||
"AUTHOR_NAME",
|
||||
"PROJECT_STACK",
|
||||
"DOWNLOAD_URL",
|
||||
"CI_URL",
|
||||
"RELEASES_URL",
|
||||
"GITEA_SERVER_URL",
|
||||
"BUILD_COMMAND",
|
||||
"TEST_COMMAND",
|
||||
"LINT_COMMAND",
|
||||
@@ -199,7 +203,8 @@
|
||||
"INSTALL_COMMAND",
|
||||
"DEV_COMMAND",
|
||||
"PACKAGE_MANAGER",
|
||||
"PROJECT_VERSION"
|
||||
"PROJECT_VERSION",
|
||||
"COMMIT_OR_VERSION"
|
||||
],
|
||||
"profiles": [
|
||||
{
|
||||
|
||||
@@ -30,6 +30,8 @@ git pull --ff-only
|
||||
|
||||
If local changes exist, do not overwrite them. Fetch or report the blocker before editing.
|
||||
|
||||
Conserve context tokens while inspecting: start with targeted searches and file lists, then read only files that affect the baseline decision. Do not load generated folders, dependency folders, build outputs, or full logs unless they are directly relevant.
|
||||
|
||||
Identify:
|
||||
|
||||
- repository name,
|
||||
@@ -91,6 +93,9 @@ ARTIFACT_OUTPUT_DIRECTORY
|
||||
AUTHOR_NAME
|
||||
PROJECT_STACK
|
||||
DOWNLOAD_URL
|
||||
CI_URL
|
||||
RELEASES_URL
|
||||
GITEA_SERVER_URL
|
||||
BUILD_COMMAND
|
||||
TEST_COMMAND
|
||||
LINT_COMMAND
|
||||
@@ -190,7 +195,7 @@ Before final response:
|
||||
- run formatting or validation if available,
|
||||
- run the cheapest reliable verification command,
|
||||
- check `git diff --check`,
|
||||
- if using Gitea Actions, poll the pushed workflow run until it reaches a terminal state; for private `git.wilkensxl.de` repositories, use a locally set `GITEA_TOKEN` for read-only API status checks when available,
|
||||
- if using Gitea Actions, poll the pushed workflow run until it reaches a terminal state; for private Gitea repositories, use a locally set `GITEA_TOKEN` and `GITEA_SERVER_URL` for read-only API status checks when available,
|
||||
- if the pushed workflow fails or is cancelled, inspect the failing job/logs, fix in scope, push again, and repeat the workflow check loop; fixing and pushing is not a stopping point,
|
||||
- summarize changed files,
|
||||
- do not create a release unless explicitly requested.
|
||||
|
||||
Reference in New Issue
Block a user