ci: auto-publish skill artifact to tommy0103/obelisk-skill on push to main (Phase 7)

Add a GitHub Actions workflow that builds the readable, non-bundled skill
artifact (`npm run build:skill`) and force-pushes it to the dedicated
tommy0103/obelisk-skill public repo whenever the main branch is updated.
The skill repo is a pure derivative — no manual commits, no PRs; the source
of truth stays in tommy0103/obelisk.

- .github/workflows/publish-skill.yml: checkout → npm ci → build:skill →
  clone skill repo → replace content → commit + force push. Auth via
  SKILL_REPO_DEPLOY_KEY (SSH deploy key with write access to obelisk-skill).
- packaging/skill-README.md: the README placed in the skill repo (install
  instructions + link back to source + "auto-published, don't PR here").
- packaging/skill-LICENSE: MIT license for the skill artifact (relicensed
  from the AGPL-3.0 source by the copyright holder).
- packaging/publish-skill.sh: local convenience script for manual publish.
- packaging/skill-package.json: license field updated to MIT.
- README.md: install command updated to tommy0103/obelisk-skill.
- package.json: add publish:skill script.

The skill repo is MIT-licensed for zero adoption friction (local tool, no
library API, no derivative works expected); the source repo stays AGPL-3.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tommy0103
2026-07-11 16:18:43 +08:00
co-authored by Claude Opus 4.8
parent e3e61cc7ab
commit 6edaf5231f
7 changed files with 129 additions and 3 deletions
+54
View File
@@ -0,0 +1,54 @@
name: Publish Skill
on:
push:
branches: [main]
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- run: npm run build:skill
- name: Push to obelisk-skill
env:
DEPLOY_KEY: ${{ secrets.SKILL_REPO_DEPLOY_KEY }}
run: |
set -euo pipefail
mkdir -p ~/.ssh
echo "$DEPLOY_KEY" > ~/.ssh/skill_deploy
chmod 600 ~/.ssh/skill_deploy
export GIT_SSH_COMMAND="ssh -i ~/.ssh/skill_deploy -o StrictHostKeyChecking=no"
SKILL_DIR=$(mktemp -d)
git clone --depth 1 git@github.com:tommy0103/obelisk-skill.git "$SKILL_DIR" || {
# First push: init an empty repo
git init "$SKILL_DIR"
git -C "$SKILL_DIR" remote add origin git@github.com:tommy0103/obelisk-skill.git
}
# Replace all content with the fresh build
find "$SKILL_DIR" -mindepth 1 -not -path "$SKILL_DIR/.git*" -delete
cp -R dist/obelisk-skill/* "$SKILL_DIR/"
cp packaging/skill-README.md "$SKILL_DIR/README.md"
cp packaging/skill-LICENSE "$SKILL_DIR/LICENSE"
cd "$SKILL_DIR"
git add -A
if git diff --cached --quiet; then
echo "No changes to publish"
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git commit -m "publish: $(date -u +%Y-%m-%dT%H:%M:%SZ) from tommy0103/obelisk@${GITHUB_SHA::7}"
git push --force origin HEAD:main
+1 -1
View File
@@ -59,7 +59,7 @@ Anything Claude Code has done before -- sessions, tool calls, subagents, workflo
## Install
```bash
npx skills add tommy0103/obelisk
npx skills add tommy0103/obelisk-skill
```
Or manually: copy `obelisk/` into your project's `.claude/skills/`.
+2 -1
View File
@@ -10,7 +10,8 @@
"typecheck": "tsc --noEmit && tsc --noEmit -p app/tsconfig.json",
"lint": "eslint .",
"build:core": "rm -rf dist && tsc -p tsconfig.build.json",
"build:skill": "rm -rf dist/obelisk-skill && tsc -p tsconfig.skill.json && cp scripts/schema.sql dist/obelisk-skill/scripts/ && cp SKILL.md dist/obelisk-skill/ && cp -R references dist/obelisk-skill/references && cp packaging/skill-package.json dist/obelisk-skill/package.json"
"build:skill": "rm -rf dist/obelisk-skill && tsc -p tsconfig.skill.json && cp scripts/schema.sql dist/obelisk-skill/scripts/ && cp SKILL.md dist/obelisk-skill/ && cp -R references dist/obelisk-skill/references && cp packaging/skill-package.json dist/obelisk-skill/package.json",
"publish:skill": "npm run build:skill && packaging/publish-skill.sh"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
SKILL_DIR="dist/obelisk-skill"
REMOTE="git@github.com:tommy0103/obelisk-skill.git"
if [ ! -d "$SKILL_DIR/scripts" ]; then
echo "Error: run 'npm run build:skill' first" >&2
exit 1
fi
cp packaging/skill-README.md "$SKILL_DIR/README.md"
cp packaging/skill-LICENSE "$SKILL_DIR/LICENSE"
cd "$SKILL_DIR"
rm -rf .git
git init
git remote add origin "$REMOTE"
git add -A
git commit -m "publish: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
git push --force origin HEAD:main
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 20252026 tommy0103
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+29
View File
@@ -0,0 +1,29 @@
# Obelisk Skill
Explicit memory infrastructure for coding agents — a queryable SQLite evidence
layer over local Claude Code and Codex session history.
## Install
```bash
npx skills add tommy0103/obelisk-skill
```
Then in any Claude Code session:
```
/obelisk <your question>
```
## Source
This repository is **auto-published** from the compiled skill artifact of
[tommy0103/obelisk](https://github.com/tommy0103/obelisk). Do not open pull
requests here — contribute to the source repo instead.
## License
MIT — see [LICENSE](LICENSE) in this repository. The
[source repository](https://github.com/tommy0103/obelisk) is AGPL-3.0; this
compiled skill artifact is explicitly relicensed under MIT by the copyright
holder.
+1 -1
View File
@@ -3,5 +3,5 @@
"version": "0.1.0",
"type": "module",
"description": "Obelisk skill artifact — readable compiled Core (providers + persist + runtime) over local Claude Code and Codex history. Built by `npm run build:skill`; sources live in the main repo.",
"license": "AGPL-3.0"
"license": "MIT"
}