harness-auto-docs 0.1.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +30 -0
- package/.github/workflows/release.yml +36 -0
- package/AGENTS.md +7 -1
- package/ARCHITECTURE.md +3 -3
- package/README.md +2 -2
- package/dist/cli.js +2 -2
- package/dist/providers/gitlab.js +1 -1
- package/docs/DESIGN.md +2 -2
- package/docs/QUALITY_SCORE.md +1 -1
- package/docs/design-docs/core-beliefs.md +2 -2
- package/docs/design-docs/index.md +2 -2
- package/docs/exec-plans/tech-debt-tracker.md +2 -2
- package/docs/product-specs/index.md +3 -3
- package/docs/superpowers/plans/{2026-04-03-harness-engineering-auto-docs.md → 2026-04-03-harness-auto-docs.md} +11 -11
- package/docs/superpowers/specs/{2026-04-03-harness-engineering-auto-docs-design.md → 2026-04-03-harness-auto-docs-design.md} +4 -4
- package/examples/github-workflow.yml +1 -1
- package/package.json +12 -10
- package/src/cli.ts +2 -2
- package/src/providers/gitlab.ts +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- uses: pnpm/action-setup@v4
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: '20'
|
|
21
|
+
cache: 'pnpm'
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: pnpm install --frozen-lockfile
|
|
25
|
+
|
|
26
|
+
- name: Build
|
|
27
|
+
run: pnpm build
|
|
28
|
+
|
|
29
|
+
- name: Run tests
|
|
30
|
+
run: pnpm test
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
with:
|
|
15
|
+
fetch-depth: 0
|
|
16
|
+
|
|
17
|
+
- uses: pnpm/action-setup@v4
|
|
18
|
+
|
|
19
|
+
- uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: '20'
|
|
22
|
+
cache: 'pnpm'
|
|
23
|
+
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: pnpm install --frozen-lockfile
|
|
26
|
+
|
|
27
|
+
- name: Build
|
|
28
|
+
run: pnpm build
|
|
29
|
+
|
|
30
|
+
- name: Configure npm authentication
|
|
31
|
+
run: echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
|
|
32
|
+
|
|
33
|
+
- name: Publish to npm
|
|
34
|
+
run: pnpm publish --no-git-checks
|
|
35
|
+
env:
|
|
36
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/AGENTS.md
CHANGED
|
@@ -5,7 +5,7 @@ Read this file first, then follow the pointers below for deeper context.
|
|
|
5
5
|
|
|
6
6
|
## What this project does
|
|
7
7
|
|
|
8
|
-
`harness-
|
|
8
|
+
`harness-auto-docs` is a TypeScript CLI that auto-generates Harness Engineering-style
|
|
9
9
|
documentation when a git tag is pushed. It diffs two adjacent tags, selects relevant
|
|
10
10
|
doc targets, calls an LLM (Claude or GPT), writes Markdown files, and opens a GitHub PR.
|
|
11
11
|
|
|
@@ -40,6 +40,12 @@ doc targets, calls an LLM (Claude or GPT), writes Markdown files, and opens a Gi
|
|
|
40
40
|
| `docs/product-specs/index.md` | Feature spec index |
|
|
41
41
|
| `docs/references/` | Library-specific LLM reference files |
|
|
42
42
|
|
|
43
|
+
## Keeping documentation in sync
|
|
44
|
+
|
|
45
|
+
- **README.md must be updated on every project change.** Since agents can only see repo-local artifacts, stale README content is invisible and misleading. Any PR that changes functionality, API, or configuration must update the corresponding README section.
|
|
46
|
+
- **Knowledge lives in `docs/` as the system of record.** `AGENTS.md` is the table of contents (~100 lines), not the encyclopedia. Deep context lives in structured `docs/` files.
|
|
47
|
+
- **Doc-gardening is continuous.** A recurring process scans for stale or obsolete documentation that does not reflect real code and opens fix-up pull requests.
|
|
48
|
+
|
|
43
49
|
## Conventions
|
|
44
50
|
|
|
45
51
|
- **Language / runtime**: TypeScript, ESM (`"type": "module"`), Node ≥18, built with `tsc`
|
package/ARCHITECTURE.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# ARCHITECTURE.md
|
|
2
2
|
|
|
3
|
-
Top-level architecture of `harness-
|
|
3
|
+
Top-level architecture of `harness-auto-docs`.
|
|
4
4
|
See `AGENTS.md` for navigation and `docs/design-docs/` for per-release decisions.
|
|
5
5
|
|
|
6
6
|
## Overview
|
|
7
7
|
|
|
8
|
-
`harness-
|
|
8
|
+
`harness-auto-docs` is a single-binary CLI (Node.js ESM) with no server or database.
|
|
9
9
|
It is invoked once per git tag event, runs to completion, and exits.
|
|
10
10
|
|
|
11
11
|
```
|
|
@@ -48,7 +48,7 @@ cli.ts (orchestration)
|
|
|
48
48
|
```
|
|
49
49
|
git tag push
|
|
50
50
|
→ GitHub Actions triggers workflow
|
|
51
|
-
→ npx harness-
|
|
51
|
+
→ npx harness-auto-docs
|
|
52
52
|
→ extractDiff() reads git history, returns DiffResult
|
|
53
53
|
→ selectTargets() classifies files, returns DocTarget[]
|
|
54
54
|
→ generateDocs() calls AI provider in parallel, returns GenerationResult[]
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# harness-
|
|
1
|
+
# harness-auto-docs
|
|
2
2
|
|
|
3
3
|
Auto-generate [Harness Engineering](https://openai.com/research/harness-engineering) style documentation when your project creates a git tag. Opens a PR with updated docs.
|
|
4
4
|
|
|
@@ -34,7 +34,7 @@ When you push a tag (`git tag v1.2.0 && git push --tags`), a PR is automatically
|
|
|
34
34
|
## Local run
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-ant-... GITHUB_TOKEN=ghp_... npx harness-
|
|
37
|
+
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-ant-... GITHUB_TOKEN=ghp_... npx harness-auto-docs
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
## Supported models
|
package/dist/cli.js
CHANGED
|
@@ -79,14 +79,14 @@ async function main() {
|
|
|
79
79
|
const baseBranch = getDefaultBranch();
|
|
80
80
|
execSync(`git checkout -b ${branch}`);
|
|
81
81
|
execSync(`git add ${writtenFiles.map(f => `"${f}"`).join(' ')}`);
|
|
82
|
-
execSync(`git commit -m "docs: Harness Engineering docs update for ${diff.currentTag}"`, { env: { ...process.env, GIT_AUTHOR_NAME: 'harness-
|
|
82
|
+
execSync(`git commit -m "docs: Harness Engineering docs update for ${diff.currentTag}"`, { env: { ...process.env, GIT_AUTHOR_NAME: 'harness-auto-docs', GIT_AUTHOR_EMAIL: 'bot@harness-auto-docs' } });
|
|
83
83
|
execSync(`git push -u origin ${branch}`);
|
|
84
84
|
const platform = detectPlatform();
|
|
85
85
|
const prUrl = await platform.createOrUpdatePR({
|
|
86
86
|
branch,
|
|
87
87
|
title: `docs: Harness Engineering docs for ${diff.currentTag}`,
|
|
88
88
|
body: [
|
|
89
|
-
`Auto-generated by [harness-
|
|
89
|
+
`Auto-generated by [harness-auto-docs](https://github.com/chooin/harness-auto-docs).`,
|
|
90
90
|
``,
|
|
91
91
|
`Updates documentation based on changes from **${diff.prevTag}** to **${diff.currentTag}**.`,
|
|
92
92
|
``,
|
package/dist/providers/gitlab.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class GitLabProvider {
|
|
2
2
|
async createOrUpdatePR(_opts) {
|
|
3
3
|
throw new Error('GitLab provider is not yet implemented. ' +
|
|
4
|
-
'Contributions welcome: https://github.com/
|
|
4
|
+
'Contributions welcome: https://github.com/chooin/harness-auto-docs');
|
|
5
5
|
}
|
|
6
6
|
}
|
package/docs/DESIGN.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DESIGN.md
|
|
2
2
|
|
|
3
|
-
Design philosophy and key decisions for `harness-
|
|
3
|
+
Design philosophy and key decisions for `harness-auto-docs`.
|
|
4
4
|
See `docs/design-docs/` for per-release design documents.
|
|
5
5
|
|
|
6
6
|
## Core philosophy
|
|
@@ -12,7 +12,7 @@ keeping repository knowledge current. Based on lessons from the Harness Engineer
|
|
|
12
12
|
> "From the agent's point of view, anything it can't access in-context while running effectively
|
|
13
13
|
> doesn't exist." — Ryan Lopopolo, Harness Engineering
|
|
14
14
|
|
|
15
|
-
`harness-
|
|
15
|
+
`harness-auto-docs` makes repository knowledge self-maintaining: every git tag triggers a
|
|
16
16
|
documentation pass, so the knowledge store reflects the codebase as it actually exists.
|
|
17
17
|
|
|
18
18
|
## Key design decisions
|
package/docs/QUALITY_SCORE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Core Beliefs
|
|
2
2
|
|
|
3
|
-
Agent-first operating principles for `harness-
|
|
3
|
+
Agent-first operating principles for `harness-auto-docs`.
|
|
4
4
|
These beliefs inform every design decision and should be consulted when making trade-offs.
|
|
5
5
|
|
|
6
6
|
Source: [Harness Engineering: Leveraging Codex in an Agent-First World](https://openai.com/index/harness-engineering/) (OpenAI, Feb 2026)
|
|
@@ -40,7 +40,7 @@ The knowledge store is organized so each layer reveals more detail than the last
|
|
|
40
40
|
Documentation alone cannot keep a codebase coherent. Rules that matter must be enforced via
|
|
41
41
|
linters, type system constraints, or structural tests — not just written down and hoped about.
|
|
42
42
|
|
|
43
|
-
**Implication**: `harness-
|
|
43
|
+
**Implication**: `harness-auto-docs` is a mechanical enforcement tool — it runs automatically
|
|
44
44
|
on every tag, not on request.
|
|
45
45
|
|
|
46
46
|
## 6. Continuous small increments beat periodic big fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Design Docs Index
|
|
2
2
|
|
|
3
|
-
Catalogued design documents for `harness-
|
|
3
|
+
Catalogued design documents for `harness-auto-docs`.
|
|
4
4
|
Each entry links to the per-release design document generated at tag time.
|
|
5
5
|
|
|
6
6
|
See `docs/design-docs/core-beliefs.md` for the foundational agent-first operating principles
|
|
@@ -8,7 +8,7 @@ that underpin every design decision in this project.
|
|
|
8
8
|
|
|
9
9
|
## Releases
|
|
10
10
|
|
|
11
|
-
<!-- harness-
|
|
11
|
+
<!-- harness-auto-docs appends entries here on each release -->
|
|
12
12
|
|
|
13
13
|
_No releases yet. The first tagged release will appear here._
|
|
14
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Tech Debt Tracker
|
|
2
2
|
|
|
3
|
-
Tracks known technical debt in `harness-
|
|
3
|
+
Tracks known technical debt in `harness-auto-docs`.
|
|
4
4
|
Updated automatically on each release. See `docs/QUALITY_SCORE.md` for graded gap tracking.
|
|
5
5
|
|
|
6
6
|
---
|
|
@@ -23,4 +23,4 @@ _None yet — first baseline._
|
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
-
<!-- harness-
|
|
26
|
+
<!-- harness-auto-docs appends sections here on each release -->
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Product Specs Index
|
|
2
2
|
|
|
3
|
-
Feature specifications for `harness-
|
|
3
|
+
Feature specifications for `harness-auto-docs`.
|
|
4
4
|
Each entry links to a spec document for a significant feature addition.
|
|
5
5
|
|
|
6
|
-
<!-- harness-
|
|
6
|
+
<!-- harness-auto-docs appends entries here when new features are detected in a release -->
|
|
7
7
|
|
|
8
8
|
## Shipped features
|
|
9
9
|
|
|
@@ -13,7 +13,7 @@ Each entry links to a spec document for a significant feature addition.
|
|
|
13
13
|
selects relevant documentation targets, calls an LLM to generate content, writes Markdown files,
|
|
14
14
|
and opens a GitHub PR with the updates.
|
|
15
15
|
|
|
16
|
-
**Trigger**: `git tag v*` → GitHub Actions workflow → `npx harness-
|
|
16
|
+
**Trigger**: `git tag v*` → GitHub Actions workflow → `npx harness-auto-docs`
|
|
17
17
|
|
|
18
18
|
**Inputs**: `AI_MODEL`, `AI_API_KEY`, `GITHUB_TOKEN` (environment variables)
|
|
19
19
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Harness
|
|
1
|
+
# Harness Auto Docs Implementation Plan
|
|
2
2
|
|
|
3
3
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
4
4
|
|
|
5
|
-
**Goal:** Build and publish an npm CLI package (`harness-
|
|
5
|
+
**Goal:** Build and publish an npm CLI package (`harness-auto-docs`) that runs via `npx`, extracts the git diff between two tags, generates Harness Engineering-style documentation using a configurable AI model, and opens a PR.
|
|
6
6
|
|
|
7
7
|
**Architecture:** Three independent layers — `core/` (diff, relevance, generation, file writing), `ai/` (Anthropic + OpenAI providers behind a shared interface), and `providers/` (GitHub PR creation; GitLab stub). The CLI (`cli.ts`) wires them together: write docs to disk → git commit + push → platform API creates PR.
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
## File Structure
|
|
14
14
|
|
|
15
15
|
```
|
|
16
|
-
harness-
|
|
16
|
+
harness-auto-docs/
|
|
17
17
|
├── package.json
|
|
18
18
|
├── tsconfig.json
|
|
19
19
|
├── vitest.config.ts
|
|
@@ -63,12 +63,12 @@ harness-engineering-auto-docs/
|
|
|
63
63
|
|
|
64
64
|
```json
|
|
65
65
|
{
|
|
66
|
-
"name": "harness-
|
|
66
|
+
"name": "harness-auto-docs",
|
|
67
67
|
"version": "0.1.0",
|
|
68
68
|
"description": "Auto-generate Harness Engineering docs on git tag",
|
|
69
69
|
"type": "module",
|
|
70
70
|
"bin": {
|
|
71
|
-
"harness-
|
|
71
|
+
"harness-auto-docs": "./dist/cli.js"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
74
|
"build": "tsc",
|
|
@@ -1487,7 +1487,7 @@ export class GitLabProvider implements PlatformProvider {
|
|
|
1487
1487
|
}): Promise<string> {
|
|
1488
1488
|
throw new Error(
|
|
1489
1489
|
'GitLab provider is not yet implemented. ' +
|
|
1490
|
-
'Contributions welcome: https://github.com/
|
|
1490
|
+
'Contributions welcome: https://github.com/chooin/harness-auto-docs'
|
|
1491
1491
|
);
|
|
1492
1492
|
}
|
|
1493
1493
|
}
|
|
@@ -1669,7 +1669,7 @@ async function main() {
|
|
|
1669
1669
|
execSync(`git add ${writtenFiles.map(f => `"${f}"`).join(' ')}`);
|
|
1670
1670
|
execSync(
|
|
1671
1671
|
`git commit -m "docs: Harness Engineering docs update for ${diff.currentTag}"`,
|
|
1672
|
-
{ env: { ...process.env, GIT_AUTHOR_NAME: 'harness-
|
|
1672
|
+
{ env: { ...process.env, GIT_AUTHOR_NAME: 'harness-auto-docs', GIT_AUTHOR_EMAIL: 'bot@harness-auto-docs' } }
|
|
1673
1673
|
);
|
|
1674
1674
|
execSync(`git push -u origin ${branch}`);
|
|
1675
1675
|
|
|
@@ -1679,7 +1679,7 @@ async function main() {
|
|
|
1679
1679
|
branch,
|
|
1680
1680
|
title: `docs: Harness Engineering docs for ${diff.currentTag}`,
|
|
1681
1681
|
body: [
|
|
1682
|
-
`Auto-generated by [harness-
|
|
1682
|
+
`Auto-generated by [harness-auto-docs](https://github.com/chooin/harness-auto-docs).`,
|
|
1683
1683
|
``,
|
|
1684
1684
|
`Updates documentation based on changes from **${diff.prevTag}** to **${diff.currentTag}**.`,
|
|
1685
1685
|
``,
|
|
@@ -1751,7 +1751,7 @@ jobs:
|
|
|
1751
1751
|
node-version: '20'
|
|
1752
1752
|
|
|
1753
1753
|
- name: Generate and PR Harness Engineering docs
|
|
1754
|
-
run: npx harness-
|
|
1754
|
+
run: npx harness-auto-docs@latest
|
|
1755
1755
|
env:
|
|
1756
1756
|
AI_MODEL: claude-sonnet-4-6 # or gpt-4o
|
|
1757
1757
|
AI_API_KEY: ${{ secrets.AI_API_KEY }}
|
|
@@ -1761,7 +1761,7 @@ jobs:
|
|
|
1761
1761
|
- [ ] **Step 2: Write README.md**
|
|
1762
1762
|
|
|
1763
1763
|
```markdown
|
|
1764
|
-
# harness-
|
|
1764
|
+
# harness-auto-docs
|
|
1765
1765
|
|
|
1766
1766
|
Auto-generate [Harness Engineering](https://openai.com/research/harness-engineering) style documentation when your project creates a git tag. Opens a PR with updated docs.
|
|
1767
1767
|
|
|
@@ -1797,7 +1797,7 @@ When you push a tag (`git tag v1.2.0 && git push --tags`), a PR is automatically
|
|
|
1797
1797
|
## Local run
|
|
1798
1798
|
|
|
1799
1799
|
```bash
|
|
1800
|
-
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-ant-... GITHUB_TOKEN=ghp_... npx harness-
|
|
1800
|
+
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-ant-... GITHUB_TOKEN=ghp_... npx harness-auto-docs
|
|
1801
1801
|
```
|
|
1802
1802
|
|
|
1803
1803
|
## Supported models
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Harness
|
|
1
|
+
# Harness Auto Docs — Design Spec
|
|
2
2
|
|
|
3
3
|
**Date:** 2026-04-03
|
|
4
4
|
**Status:** Approved
|
|
5
5
|
|
|
6
6
|
## Overview
|
|
7
7
|
|
|
8
|
-
A CLI tool published as an npm package (`harness-
|
|
8
|
+
A CLI tool published as an npm package (`harness-auto-docs`) that automatically generates and updates Harness Engineering-style documentation when a GitHub/GitLab project creates a new tag. The tool runs via `npx harness-auto-docs` inside CI and opens a PR/MR with the updated docs.
|
|
9
9
|
|
|
10
10
|
**Core constraint:** Context source is git diff only (prev_tag → current_tag). No full-repo reads.
|
|
11
11
|
|
|
@@ -148,7 +148,7 @@ jobs:
|
|
|
148
148
|
- uses: actions/checkout@v4
|
|
149
149
|
with:
|
|
150
150
|
fetch-depth: 0 # required: fetch all tags
|
|
151
|
-
- run: npx harness-
|
|
151
|
+
- run: npx harness-auto-docs@latest
|
|
152
152
|
env:
|
|
153
153
|
AI_MODEL: claude-sonnet-4-6
|
|
154
154
|
AI_API_KEY: ${{ secrets.AI_API_KEY }}
|
|
@@ -158,7 +158,7 @@ jobs:
|
|
|
158
158
|
**Locally:**
|
|
159
159
|
|
|
160
160
|
```bash
|
|
161
|
-
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-... GITHUB_TOKEN=... npx harness-
|
|
161
|
+
AI_MODEL=claude-sonnet-4-6 AI_API_KEY=sk-... GITHUB_TOKEN=... npx harness-auto-docs
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
## Out of Scope
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
node-version: '20'
|
|
26
26
|
|
|
27
27
|
- name: Generate and PR Harness Engineering docs
|
|
28
|
-
run: npx harness-
|
|
28
|
+
run: npx harness-auto-docs@latest
|
|
29
29
|
env:
|
|
30
30
|
AI_MODEL: claude-sonnet-4-6 # or gpt-4o
|
|
31
31
|
AI_API_KEY: ${{ secrets.AI_API_KEY }}
|
package/package.json
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-auto-docs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Auto-generate Harness Engineering docs on git tag",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"harness-
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"dev": "tsx src/cli.ts",
|
|
12
|
-
"test": "vitest run",
|
|
13
|
-
"test:watch": "vitest"
|
|
7
|
+
"harness-auto-docs": "./dist/cli.js"
|
|
14
8
|
},
|
|
15
9
|
"dependencies": {
|
|
16
10
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
@@ -26,5 +20,13 @@
|
|
|
26
20
|
"engines": {
|
|
27
21
|
"node": ">=18"
|
|
28
22
|
},
|
|
29
|
-
"
|
|
30
|
-
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"git-checks": false
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"dev": "tsx src/cli.ts",
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:watch": "vitest"
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/cli.ts
CHANGED
|
@@ -94,7 +94,7 @@ async function main() {
|
|
|
94
94
|
execSync(`git add ${writtenFiles.map(f => `"${f}"`).join(' ')}`);
|
|
95
95
|
execSync(
|
|
96
96
|
`git commit -m "docs: Harness Engineering docs update for ${diff.currentTag}"`,
|
|
97
|
-
{ env: { ...process.env, GIT_AUTHOR_NAME: 'harness-
|
|
97
|
+
{ env: { ...process.env, GIT_AUTHOR_NAME: 'harness-auto-docs', GIT_AUTHOR_EMAIL: 'bot@harness-auto-docs' } }
|
|
98
98
|
);
|
|
99
99
|
execSync(`git push -u origin ${branch}`);
|
|
100
100
|
|
|
@@ -103,7 +103,7 @@ async function main() {
|
|
|
103
103
|
branch,
|
|
104
104
|
title: `docs: Harness Engineering docs for ${diff.currentTag}`,
|
|
105
105
|
body: [
|
|
106
|
-
`Auto-generated by [harness-
|
|
106
|
+
`Auto-generated by [harness-auto-docs](https://github.com/chooin/harness-auto-docs).`,
|
|
107
107
|
``,
|
|
108
108
|
`Updates documentation based on changes from **${diff.prevTag}** to **${diff.currentTag}**.`,
|
|
109
109
|
``,
|
package/src/providers/gitlab.ts
CHANGED
|
@@ -10,7 +10,7 @@ export class GitLabProvider implements PlatformProvider {
|
|
|
10
10
|
}): Promise<string> {
|
|
11
11
|
throw new Error(
|
|
12
12
|
'GitLab provider is not yet implemented. ' +
|
|
13
|
-
'Contributions welcome: https://github.com/
|
|
13
|
+
'Contributions welcome: https://github.com/chooin/harness-auto-docs'
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
16
|
}
|