Skip to content

Commit 717aebd

Browse files
authored
chore: add OSS harness workflow (ceilf6#168)
* chore: add OSS harness workflow * fix: tighten harness contract checks * fix: stabilize vitest collection in CI * docs: clarify GitNexus index refresh policy * fix: classify mcp memory contract changes
1 parent d726625 commit 717aebd

28 files changed

Lines changed: 2108 additions & 178 deletions

‎.githooks/pre-commit‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
set -eu
3+
4+
if [ "${SKIP_QUALITY_HOOKS:-}" = "1" ]; then
5+
echo "Skipping pre-commit quality gate because SKIP_QUALITY_HOOKS=1. CI remains authoritative."
6+
exit 0
7+
fi
8+
9+
pnpm quality:precommit

‎.githooks/pre-push‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
set -eu
3+
4+
if [ "${SKIP_QUALITY_HOOKS:-}" = "1" ]; then
5+
echo "Skipping pre-push quality gate because SKIP_QUALITY_HOOKS=1. CI remains authoritative."
6+
exit 0
7+
fi
8+
9+
pnpm quality:local

‎.github/CODEOWNERS‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
.github/workflows/ @ceilf6
2+
.github/PULL_REQUEST_TEMPLATE.md @ceilf6
3+
.github/ISSUE_TEMPLATE/ @ceilf6
4+
.github/CODEOWNERS @ceilf6
5+
.githooks/ @ceilf6
6+
scripts/workflows/ @ceilf6
7+
scripts/tests/ @ceilf6
8+
AGENTS.md @ceilf6
9+
CLAUDE.md @ceilf6
10+
CONTRIBUTING.md @ceilf6
11+
docs/workflow.md @ceilf6
12+
docs/knowledge-contract.md @ceilf6
13+
docs/design.md @ceilf6
14+
docs/architecture.md @ceilf6
15+
packages/core/src/agent/ @ceilf6
16+
packages/core/src/planner.ts @ceilf6
17+
packages/core/src/executor.ts @ceilf6
18+
packages/sdd/src/ @ceilf6
19+
packages/mcp-*/src/ @ceilf6
20+
packages/runtime-node/src/ @ceilf6
21+
packages/mcp-memory/src/ @ceilf6
22+
packages/core/src/memory/ @ceilf6

‎.github/ISSUE_TEMPLATE/bug.yml‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Bug Report
2+
description: Report a reproducible problem in FrontAgent.
3+
title: "[Bug] "
4+
labels: ["bug"]
5+
body:
6+
- type: textarea
7+
id: summary
8+
attributes:
9+
label: Summary
10+
description: What happened, and what did you expect instead?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: reproduction
15+
attributes:
16+
label: Reproduction
17+
description: Provide the smallest steps, command, project shape, or config that reproduces the bug.
18+
placeholder: |
19+
1. Run ...
20+
2. Open ...
21+
3. Observe ...
22+
validations:
23+
required: true
24+
- type: input
25+
id: affected-area
26+
attributes:
27+
label: Affected Area
28+
description: For example CLI, VS Code extension, SDD, MCP file, MCP web, memory, planner, executor, docs.
29+
validations:
30+
required: true
31+
- type: textarea
32+
id: environment
33+
attributes:
34+
label: Environment
35+
description: Include OS, Node version, pnpm version, FrontAgent version or commit, and host app if relevant.
36+
placeholder: |
37+
- OS:
38+
- Node:
39+
- pnpm:
40+
- FrontAgent:
41+
- Host:
42+
validations:
43+
required: true
44+
- type: textarea
45+
id: logs
46+
attributes:
47+
label: Logs Or Screenshots
48+
description: Paste relevant logs, screenshots, or run-log paths. Remove secrets before posting.
49+
validations:
50+
required: false
51+
- type: checkboxes
52+
id: contribution
53+
attributes:
54+
label: Contribution
55+
options:
56+
- label: I am willing to submit a PR for this bug.
57+
required: false

‎.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: true
2+
contact_links:
3+
- name: Questions And Discussions
4+
url: https://github.com/FrontAgent/FrontAgent/discussions
5+
about: Ask questions or discuss ideas before opening an issue.

‎.github/ISSUE_TEMPLATE/feature.yml‎

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Feature Request
2+
description: Propose a new capability or behavior change.
3+
title: "[Feature] "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: Problem
10+
description: What user or maintainer problem does this solve?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: Proposed Behavior
17+
description: Describe the expected behavior and user-facing shape.
18+
validations:
19+
required: true
20+
- type: input
21+
id: affected-area
22+
attributes:
23+
label: Affected Area
24+
description: For example CLI, VS Code extension, SDD, MCP file, MCP web, memory, planner, executor, docs.
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives Considered
31+
description: What other approaches did you consider?
32+
validations:
33+
required: false
34+
- type: textarea
35+
id: acceptance
36+
attributes:
37+
label: Acceptance Criteria
38+
description: List concrete checks that would prove the feature is complete.
39+
validations:
40+
required: true
41+
- type: checkboxes
42+
id: contribution
43+
attributes:
44+
label: Contribution
45+
options:
46+
- label: I am willing to submit a PR for this feature.
47+
required: false
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Maintenance Task
2+
description: Propose refactoring, documentation, CI, dependency, or Harness maintenance.
3+
title: "[Maintenance] "
4+
labels: ["maintenance"]
5+
body:
6+
- type: textarea
7+
id: reason
8+
attributes:
9+
label: Reason
10+
description: Why is this maintenance useful now?
11+
validations:
12+
required: true
13+
- type: input
14+
id: affected-area
15+
attributes:
16+
label: Affected Area
17+
description: For example CI, docs, Harness, package, dependency, test suite, security boundary.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: proposed-change
22+
attributes:
23+
label: Proposed Change
24+
description: Describe the intended change and any alternatives.
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: verification
29+
attributes:
30+
label: Verification Plan
31+
description: Which commands, tests, or reviews should prove this task is safe?
32+
validations:
33+
required: true
34+
- type: checkboxes
35+
id: contribution
36+
attributes:
37+
label: Contribution
38+
options:
39+
- label: I am willing to submit a PR for this maintenance task.
40+
required: false

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## Linked Issue Or Context
2+
3+
-
4+
5+
## Summary
6+
7+
-
8+
9+
## Impact Scope
10+
11+
-
12+
13+
## GitNexus Impact Summary
14+
15+
- Risk level: -
16+
- Critical skeleton changes: -
17+
- GitNexus impact: -
18+
- Verification: -
19+
20+
## Verification
21+
22+
-
23+
24+
## Checklist
25+
26+
- [ ] I have linked an issue or explained why this PR stands alone.
27+
- [ ] I have kept the diff focused on the stated change.
28+
- [ ] I have run `pnpm quality:precommit`, or explained why it could not run.
29+
- [ ] I have run `pnpm quality:local` for critical skeleton changes, or explained why it could not run.
30+
- [ ] I have updated docs or tests when behavior, public APIs, or Harness contracts changed.
31+
- [ ] For critical skeleton changes, I have filled the GitNexus impact summary with concrete results.

‎.github/workflows/ci.yml‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,5 @@ jobs:
2424

2525
- run: pnpm install --frozen-lockfile
2626

27-
- name: Lint
28-
run: pnpm lint
29-
30-
- name: Typecheck
31-
run: pnpm typecheck
32-
33-
- name: Test
34-
run: pnpm test
35-
36-
- name: Build
37-
run: pnpm build
27+
- name: Quality
28+
run: pnpm quality:ci
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Contract Guard
2+
3+
on:
4+
pull_request:
5+
branches: [develop]
6+
types: [opened, edited, synchronize, reopened, ready_for_review]
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: contract-guard-${{ github.event.pull_request.number || github.ref }}
13+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
14+
15+
jobs:
16+
gitnexus-contract:
17+
name: Contract Guard / gitnexus-contract
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v6
21+
with:
22+
fetch-depth: 0
23+
24+
- uses: pnpm/action-setup@v6
25+
26+
- uses: actions/setup-node@v6
27+
with:
28+
node-version: 22
29+
cache: pnpm
30+
31+
- run: pnpm install --frozen-lockfile
32+
33+
- run: pnpm contract:gitnexus
34+
env:
35+
GITNEXUS_IMPACT_SUMMARY: ${{ github.event.pull_request.body }}

0 commit comments

Comments
 (0)