Skip to content

Commit 1e3bbbf

Browse files
committed
Feat: Establish project foundations and dev tooling
Introduces a comprehensive set of foundational files and development tools to enhance project quality, maintainability, and community engagement. - **Code Quality & Consistency**: Adds `.editorconfig`, `.prettierrc`, and `.eslintrc.json` for standardized formatting and linting. - **Community & Contribution**: Implements GitHub issue and pull request templates, along with `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, and `SECURITY.md`. - **Automation & Reliability**: Sets up a GitHub Actions CI/CD pipeline for automated testing and npm publishing. - **Enhanced CLI**: Introduces `upgrade`, `doctor`, and `uninstall` commands for better kit management and diagnostics. - **Project Structure**: Adds `CHANGELOG.md`, `LICENSE`, and a JSON Schema for `opencode.json` to improve documentation and configuration validation. - **Testing**: Integrates Vitest with initial test suites for configuration and package integrity. - **Improved UX**: Refines the `init` command output with color-coded feedback and a clearer summary of installed components.
1 parent 45cb51a commit 1e3bbbf

25 files changed

Lines changed: 4272 additions & 109 deletions

‎.editorconfig‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2

‎.eslintrc.json‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"env": {
3+
"node": true,
4+
"es2022": true
5+
},
6+
"extends": ["eslint:recommended", "prettier"],
7+
"parserOptions": {
8+
"ecmaVersion": "latest",
9+
"sourceType": "module"
10+
},
11+
"rules": {
12+
"no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
13+
"no-console": "off",
14+
"prefer-const": "error",
15+
"no-var": "error"
16+
},
17+
"ignorePatterns": ["node_modules/", "template/", "data/", "coverage/"]
18+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Run `npx opencode-agent-kit ...`
16+
2. See error
17+
18+
**Expected behavior**
19+
A clear description of what you expected to happen.
20+
21+
**Screenshots / Logs**
22+
If applicable, add screenshots or error logs.
23+
24+
**Environment (please complete):**
25+
- OS: [e.g. macOS 14, Ubuntu 22.04]
26+
- Node.js version: [e.g. 20.11]
27+
- Package version: [e.g. 1.0.19]
28+
- OpenCode version: [if applicable]
29+
30+
**Additional context**
31+
Add any other context about the problem here.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem?**
11+
A clear description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear description of any alternative solutions or features you've considered.
18+
19+
**Would you be willing to contribute this?**
20+
Let us know if you'd like to submit a PR for this feature.
21+
22+
**Additional context**
23+
Add any other context, screenshots, or references about the feature request here.

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: Pull Request
3+
about: Submit changes to the project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
## Description
11+
12+
Please include a summary of the changes and the motivation behind them.
13+
14+
Fixes #(issue)
15+
16+
## Type of Change
17+
18+
- [ ] Bug fix (non-breaking change that fixes an issue)
19+
- [ ] New feature (non-breaking change that adds functionality)
20+
- [ ] Breaking change (fix or feature that breaks existing functionality)
21+
- [ ] Documentation update
22+
- [ ] Test update
23+
- [ ] Chore (tooling, dependencies, CI)
24+
25+
## Checklist
26+
27+
- [ ] My code follows the project's coding style
28+
- [ ] I have tested my changes locally
29+
- [ ] Tests pass (`npm test`)
30+
- [ ] I have updated the documentation (README, CHANGELOG, agent prompts, etc.)
31+
- [ ] I have added/updated tests for my changes
32+
- [ ] My changes are backwards-compatible or migration path is documented
33+
34+
## Screenshots (if applicable)
35+
36+
## Additional Notes

‎.github/workflows/ci.yml‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: CI/CD
2+
3+
on:
4+
push:
5+
branches: [main]
6+
tags: ['v*']
7+
pull_request:
8+
branches: [main]
9+
10+
jobs:
11+
test:
12+
name: Test (Node ${{ matrix.node }})
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
node: [18, 20, 22]
17+
steps:
18+
- uses: actions/checkout@v4
19+
- uses: actions/setup-node@v4
20+
with:
21+
node-version: ${{ matrix.node }}
22+
cache: npm
23+
- run: npm ci
24+
- run: npm test
25+
- run: npm run lint
26+
27+
publish:
28+
name: Publish to npm
29+
needs: test
30+
if: startsWith(github.ref, 'refs/tags/v')
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
- uses: actions/setup-node@v4
35+
with:
36+
node-version: 20
37+
registry-url: https://registry.npmjs.org
38+
- run: npm ci
39+
- name: Generate template/ for publish
40+
run: bash scripts/generate-template.sh
41+
- run: npm publish
42+
env:
43+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

‎.gitignore‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
node_modules/
2-
package-lock.json
32
bun.lock
43
pnpm-lock.yaml
54
*.tgz
6-
package.json
75
yarn.lock
8-
template
96
.npmignore
7+
.DS_Store
8+
template
109
.opencode/config.json
1110
.opencode/config.*.json
1211
data/

‎.prettierrc‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"semi": true,
3+
"singleQuote": true,
4+
"trailingComma": "all",
5+
"printWidth": 100,
6+
"tabWidth": 2,
7+
"arrowParens": "always"
8+
}

‎CHANGELOG.md‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Changelog
2+
3+
All notable changes to the **opencode-agent-kit** project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
---
9+
10+
## [1.1.0] - 2025-06-09
11+
12+
### Added
13+
14+
- **Foundation files**: LICENSE (MIT), CHANGELOG.md, CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md
15+
- **CI/CD pipeline**: GitHub Actions workflow for automated testing + npm publish
16+
- **GitHub templates**: Issue templates (bug report, feature request) + PR template
17+
- **Developer tooling**: `.editorconfig`, `.prettierrc`, `.eslintrc.json` for consistent code quality
18+
- **JSON Schema**: `schema/opencode-config.schema.json` for validating agent configurations
19+
- **CLI upgrade command**: `opencode-agent-kit upgrade` — self-update with version check
20+
- **CLI doctor command**: `opencode-agent-kit doctor` — diagnose common setup issues
21+
- **CLI uninstall command**: `opencode-agent-kit uninstall` — clean removal
22+
- **Unit tests**: Test suite for init, merge logic, config helpers, and CLI commands (Vitest)
23+
- **Polish output**: Color-coded console output with spinners and structured feedback in CLI
24+
- **Bash permission hardening**: Template `opencode.json` now uses `"*": "ask"` by default instead of `"*": "allow"`
25+
26+
### Security
27+
28+
- Added SECURITY.md with responsible disclosure policy
29+
- Permission model in template config now defaults to ask for unrestricted bash access
30+
31+
---
32+
33+
## [1.0.19] - 2025-06-08
34+
35+
### Added
36+
37+
- SonarQube quality agent (`@sonarqube`) with full MCP integration
38+
- SonarQube scan command `/sonarqube-scan` with quick/full/PR modes
39+
- SonarQube quality gate checks and issue triage workflow
40+
- agentmemory integration with 53 MCP tools for persistent cross-session memory
41+
- `.kit-version` tracking for automated update checks
42+
- Postman MCP server for API management
43+
- Smart JSON merge strategy in init command (agents, MCP, permissions, instructions)
44+
45+
### Fixed
46+
47+
- Template directory resolution when installed globally via npm
48+
- Gitignore entries for `.opencode/*` and `data/`
49+
50+
---
51+
52+
## [1.0.0] - 2025-06-06
53+
54+
### Added
55+
56+
- Initial release of opencode-agent-kit
57+
- 13 specialized AI agents orchestrated by IT Leader
58+
- Multi-stack support: Nuxt/Vue, React/Next.js, Node.js/Express, Laravel, CodeIgniter 3, Android (Kotlin/Compose), Flutter (Dart)
59+
- 60+ skill playbooks across all stacks
60+
- 30+ custom slash commands (plan, tdd, code-review, security, build, android/flutter commands)
61+
- 8 MCP servers (Nuxt, Nuxt UI, Playwright, Postman, Figma, Stitch, SonarQube, agentmemory)
62+
- Impeccable design intelligence system
63+
- agentmemory persistent cross-session memory
64+
- One-command `npx opencode-agent-kit init` installation
65+
- Smart config merging for existing OpenCode projects
66+
- Comprehensive docs for Nuxt, React, Flutter, Android stacks
67+
- 30-day mentor curriculum for Nuxt transition

‎CODE_OF_CONDUCT.md‎

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment:
18+
19+
- Demonstrating empathy and kindness toward other people
20+
- Being respectful of differing opinions, viewpoints, and experiences
21+
- Giving and gracefully accepting constructive feedback
22+
- Accepting responsibility and apologizing to those affected by our mistakes
23+
- Focusing on what is best for the overall community
24+
25+
Examples of unacceptable behavior:
26+
27+
- The use of sexualized language or imagery, and sexual attention or advances
28+
- Trolling, insulting or derogatory comments, and personal or political attacks
29+
- Public or private harassment
30+
- Publishing others' private information without explicit permission
31+
- Other conduct which could reasonably be considered inappropriate
32+
33+
## Enforcement Responsibilities
34+
35+
Project maintainers are responsible for clarifying and enforcing standards of
36+
acceptable behavior and will take appropriate and fair corrective action in
37+
response to any behavior they deem inappropriate, threatening, offensive, or harmful.
38+
39+
## Scope
40+
41+
This Code of Conduct applies within all community spaces, and also applies when
42+
an individual is officially representing the community in public spaces.
43+
44+
## Enforcement
45+
46+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
47+
reported to the project maintainers. All complaints will be reviewed and
48+
investigated promptly and fairly.
49+
50+
## Enforcement Guidelines
51+
52+
Project maintainers will follow these Community Impact Guidelines:
53+
54+
### 1. Correction
55+
56+
**Community Impact**: Use of inappropriate language or other behavior deemed
57+
unprofessional or unwelcome.
58+
59+
**Consequence**: A private, written warning, providing clarity around the nature
60+
of the violation and an explanation of why the behavior was inappropriate.
61+
62+
### 2. Warning
63+
64+
**Community Impact**: A violation through a single incident or series of actions.
65+
66+
**Consequence**: A warning with consequences for continued behavior. No
67+
interaction with the people involved for a specified period of time.
68+
69+
### 3. Temporary Ban
70+
71+
**Community Impact**: A serious violation of community standards.
72+
73+
**Consequence**: A temporary ban from any sort of interaction or public
74+
communication with the community for a specified period of time.
75+
76+
### 4. Permanent Ban
77+
78+
**Community Impact**: Demonstrating a pattern of violation of community standards.
79+
80+
**Consequence**: A permanent ban from any sort of public interaction within
81+
the community.
82+
83+
## Attribution
84+
85+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
86+
version 2.1, available at
87+
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
88+
89+
[homepage]: https://www.contributor-covenant.org

0 commit comments

Comments
 (0)