diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..113ff12 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,43 @@ +--- +name: Bug report +about: Report a reproducible problem with the CLI or its documented workflows. +title: "bug: " +labels: bug +--- + +## Summary + +Describe the problem clearly and concisely. + +## Environment + +- CLI version: +- Bun version: +- OS: +- Plane host type: cloud or self-hosted + +## Command Or Workflow + +```bash +# Paste the command or sequence here +``` + +## Expected Behavior + +Describe what you expected to happen. + +## Actual Behavior + +Describe what happened instead. Include exact output when relevant. + +## Reproduction Steps + +1. +2. +3. + +## Additional Context + +- Relevant logs or screenshots +- Related Plane API behavior +- Whether the issue affects `--json` or `--xml` output \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..113d334 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: Security policy + url: https://github.com/backslash-ux/plane-cli/blob/main/SECURITY.md + about: Report suspected vulnerabilities privately instead of opening a public issue. + - name: Contributing guide + url: https://github.com/backslash-ux/plane-cli/blob/main/CONTRIBUTING.md + about: Review contribution expectations, quality gates, and documentation requirements first. + - name: Existing issues + url: https://github.com/backslash-ux/plane-cli/issues + about: Check open issues and feature requests before filing a new one. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..ea94cfe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,36 @@ +--- +name: Feature request +about: Propose a new CLI workflow, resource, or usability improvement. +title: "feat: " +labels: enhancement +--- + +## Summary + +Describe the feature or workflow you want to add. + +## Problem To Solve + +Explain the current limitation, friction, or missing capability. + +## Proposed CLI Experience + +```bash +# Example command shape, help text, or output +``` + +## Why It Matters + +- Human workflow benefit: +- AI-agent workflow benefit: +- Related Plane resource or API area: + +## Alternatives Considered + +Describe any workarounds or alternative approaches you considered. + +## Additional Context + +- Links to Plane docs or API endpoints +- Related issues or pull requests +- Whether this should be tracked as a new GitHub issue or grouped with an existing one \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..289a10b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,27 @@ +## Summary + +Describe the change and the user-facing outcome. + +## Related Issue + +Link the relevant GitHub issue, discussion, or explain why no public tracking item was needed. + +## Changes + +- + +## Validation + +- [ ] `bun run typecheck` +- [ ] relevant `bun test` coverage for the touched area +- [ ] `bun run check:all` if shared command behavior, schemas, or output changed + +## Docs + +- [ ] `README.md` updated if CLI usage changed +- [ ] `SKILL.md` updated if AI-agent usage changed +- [ ] `CHANGELOG.md` updated if there is a notable user-facing change + +## Risks Or Follow-Ups + +- \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cfee17..7cd15f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,18 @@ concurrency: cancel-in-progress: true jobs: + quality: + name: Repo Quality + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v1 + with: + bun-version: latest + - run: bun install --frozen-lockfile + - run: bun run format:check + - run: bun scripts/check-file-size.ts + typecheck: name: TypeScript Check runs-on: ubuntu-latest @@ -23,14 +35,13 @@ jobs: - run: bun run typecheck test: - name: Tests + name: Tests And Coverage runs-on: ubuntu-latest - needs: [typecheck] + needs: [quality, typecheck] steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest - run: bun install --frozen-lockfile - - run: bun run test:coverage - run: bun run test:coverage:check diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5ffe46b..ff8888e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,3 +1,4 @@ +# yaml-language-server: disable name: Publish on: @@ -21,12 +22,12 @@ jobs: - run: bun install --frozen-lockfile - name: Run checks - run: bun run typecheck && bun run test:coverage:check + run: bun run check:all - name: Publish to npm run: bun publish --access public env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_CONFIG_TOKEN: ${{ secrets.NPM_CONFIG_TOKEN }} - name: Create GitHub release uses: softprops/action-gh-release@v1 diff --git a/.gitignore b/.gitignore index 38c1e04..40557fa 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,10 @@ dist/ .env *.env +# Local AI/editor customization files +.github/copilot-instructions.md +.github/instructions/ +.github/prompts/ +.github/agents/ +.vscode/docs/ + diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5a13b76 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,54 @@ +# AGENTS.md + +This file provides baseline context for AI coding agents contributing to this repository. It is public, versioned, and intended to be shared across contributors and tools. + +## Project Goal + +This repository builds an agent-friendly CLI for Plane, especially for project-defined and spec-driven workflows. Changes should improve predictability, discoverability, and structured automation instead of adding one-off behaviors that are hard for humans or agents to compose. + +## Start Here + +Before making non-trivial changes: + +1. Read [README.md](./README.md) for installation and user-facing command expectations. +2. Read [CONTRIBUTING.md](./CONTRIBUTING.md) for workflow and quality gates. +3. Read [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) for code boundaries. +4. Check GitHub issues and pull requests for related work before starting a non-trivial change. + +## Workflow Expectations + +- Keep changes scoped to one useful vertical slice when practical. +- Treat GitHub issues and pull requests as the public work-tracking system for this repository. +- When command behavior changes, keep user-facing docs aligned: [README.md](./README.md), [SKILL.md](./SKILL.md), and any relevant plan or release notes. +- Prefer public repository guidance over local-only editor customizations. Maintainers may keep private planning notes in `.vscode/docs/`, but those are not the source of truth for contributors. + +## Technical Boundaries + +- CLI entry flow: `bin/plane` -> `src/bin.ts` -> `src/app.ts`. +- Command behavior belongs in `src/commands/*.ts`. +- Route HTTP through `src/api.ts`. +- Validate API responses with `decodeOrFail` and schemas from `src/config.ts`. +- Reuse `src/resolve.ts` for project, issue, member, state, and label lookup flows. +- Keep human-readable formatting in `src/format.ts` and shared machine-readable output behavior in `src/output.ts`. + +## Design Principles + +- Prefer discoverable workflows. If a command depends on UUIDs or join IDs, the CLI should expose a list or get path that helps agents obtain them. +- Preserve shared `--json` and `--xml` behavior instead of inventing per-command machine formats. +- Keep Plane concepts explicit and close to the underlying API domain. +- Fix root causes instead of layering on ad hoc patches when practical. + +## Testing And Validation + +- Use Bun for local work. +- Run the narrowest relevant tests plus `bun run typecheck`. +- Use `bun run check:all` when shared command behavior, schemas, output formatting, or repo-wide quality gates are affected. +- Tests use Bun plus MSW. Prefer mocked HTTP responses over real Plane endpoints. +- Clear `_clearProjectCache()` in tests when cached project resolution could affect results. + +## Open Source Hygiene + +- Keep public documentation presentable and accurate. +- Use [CHANGELOG.md](./CHANGELOG.md) for notable user-facing changes. +- Follow [docs/RELEASING.md](./docs/RELEASING.md) for release workflow expectations. +- Respect [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) and [SECURITY.md](./SECURITY.md). \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1227c64 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +This project aims to follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/). + +Earlier project history may predate this file. + +## [Unreleased] + +### Added + +- Public open-source repository baseline with contributor, governance, security, architecture, and release documentation. +- GitHub issue and pull request templates plus issue intake routing. +- Stricter repository quality gates covering formatting, file-size limits, and coverage thresholds. +- Fork-specific package identity and public metadata alignment under `@backslash-ux/plane`. +- A versioned root `AGENTS.md` file that provides baseline context for AI coding agents contributing to the repository. \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5576b46 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,37 @@ +# Code of Conduct + +## Purpose + +This project aims to be a constructive, respectful place for collaboration. The goal is clear technical discussion, useful feedback, and a working environment where contributors can participate without harassment or hostility. + +## Expected Behavior + +- Be respectful in technical disagreement. +- Assume good intent while still being clear and direct. +- Focus criticism on ideas, code, and decisions rather than people. +- Share context, evidence, and reproduction steps when reporting issues. +- Help keep discussions accessible to contributors with different levels of experience. + +## Unacceptable Behavior + +- Harassment, intimidation, threats, or discriminatory language. +- Personal attacks, insults, or repeated bad-faith engagement. +- Publishing private information without consent. +- Spam, trolling, or intentionally disruptive behavior. +- Sexualized language or unwelcome sexual attention. + +## Scope + +This policy applies to repository discussions, issues, pull requests, code review, and other project spaces where contributors represent or participate in this project. + +## Reporting + +If you experience or witness behavior that violates this policy, contact the maintainers through the repository contact channels or security contact path listed in [SECURITY.md](./SECURITY.md) when appropriate. Include links, screenshots, or other context when possible. + +## Enforcement + +Maintainers may remove comments, close discussions, reject contributions, or temporarily or permanently restrict participation when necessary to protect the project and its contributors. + +## Project Standard + +The project values direct engineering discussion, but directness is not an excuse for abuse. Keep feedback factual, relevant, and professional. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3de6fdf --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,86 @@ +# Contributing + +## Overview + +This project is intended to be a clean, scriptable, open-source CLI for Plane, with a strong focus on AI-assisted and spec-driven development workflows. Contributions should preserve that bias toward discoverability, predictable output, and small end-to-end increments. + +Participation in this project is also governed by [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md). Security issues should be reported using the process in [SECURITY.md](./SECURITY.md), not filed as public bug reports. + +## Before You Start + +1. Read [README.md](./README.md) for setup and command usage. +2. If you are using an AI coding agent, read [AGENTS.md](./AGENTS.md) for the repo baseline context. +3. Read [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) for the code layout and boundaries. +4. Check existing GitHub issues and pull requests to understand whether the work is already proposed, in progress, or intentionally deferred. + +## Development Workflow + +1. Start from a GitHub issue or open one before beginning non-trivial work. +2. Keep the change scoped to one useful vertical slice when practical. +3. Update tests and user-facing docs together with code. +4. Reference the related issue or discussion in your pull request. +5. Record notable user-facing changes in [CHANGELOG.md](./CHANGELOG.md) when appropriate. + +## Local Setup + +```bash +bun install +bun run dev +``` + +Use Bun for all local work in this repository. + +## Quality Gates + +Run the narrowest relevant checks for the change: + +```bash +bun test +bun run typecheck +``` + +Run the full shared checks when command behavior, schemas, or output behavior changes: + +```bash +bun run check:all +``` + +`bun run check:all` is the closest thing to the repository gate. It covers type checking, formatting, file-size enforcement, and coverage-threshold validation. + +## Code Conventions + +- Keep CLI behavior in `src/commands/*.ts`. +- Route HTTP through `src/api.ts`. +- Validate API responses with `decodeOrFail` and schemas from `src/config.ts`. +- Reuse `src/resolve.ts` for project, issue, member, state, and label lookup logic. +- Preserve shared machine-readable output behavior in `src/output.ts`. +- Keep human-readable formatting in `src/format.ts`. +- Match the existing TypeScript style in `src/`: tabs, semicolons, and small explicit payload interfaces. +- Keep TypeScript files below the enforced 700-line limit. + +## Testing Conventions + +- Use Bun plus MSW for tests. +- Mock HTTP responses instead of calling real Plane endpoints. +- Set `PLANE_HOST`, `PLANE_WORKSPACE`, and `PLANE_API_TOKEN` in test setup. +- Clear `_clearProjectCache()` in tests when project resolution caching could affect behavior. + +## Documentation Expectations + +When the CLI surface changes, update the relevant public docs together: + +- [README.md](./README.md) for installation and common usage. +- [AGENTS.md](./AGENTS.md) for public AI-agent contribution context. +- [CHANGELOG.md](./CHANGELOG.md) for notable user-facing changes. +- [SKILL.md](./SKILL.md) for AI-agent usage of the CLI. + +## Release Notes + +Maintainers should keep [CHANGELOG.md](./CHANGELOG.md) and [docs/RELEASING.md](./docs/RELEASING.md) aligned with the actual release process and publish workflow. + +## Pull Request Checklist + +- The change links to a related GitHub issue, discussion, or clearly explains why one is not needed. +- Tests or validation were run and recorded. +- Public docs were updated if behavior changed. +- No local-only AI/editor customization files were included in the diff. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..33d9abd --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Gabriel Reynold and Contributors + +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. \ No newline at end of file diff --git a/README.md b/README.md index af2b6c0..5894658 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,28 @@ # plane +[![CI](https://github.com/backslash-ux/plane-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/backslash-ux/plane-cli/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) + CLI for the [Plane](https://plane.so) project management API. +Built for both human operators and AI agents that need predictable, scriptable, discoverable workflows around Plane projects, issues, cycles, modules, pages, and related resources. + +## Upstream Attribution + +This repository is a fork of [aaronshaf/plane-cli](https://github.com/aaronshaf/plane-cli) and continues that work under the terms of the MIT license. The upstream project remains the original source for the codebase lineage; this fork carries its own roadmap, planning, and maintenance workflow. + +## Why This Exists + +- Keep Plane workflows available from the terminal instead of requiring UI navigation. +- Give AI agents stable command grammar and structured output with `--json` and `--xml`. +- Favor discoverable flows so agents can obtain required IDs from the CLI instead of guessing hidden values. + +## Highlights + +- Bun-based CLI with `@effect/cli` command structure. +- Structured machine-readable output for list commands. +- Project and issue workflows designed for agent composition. +- Strict schema validation and mocked API tests. + ## Requirements - [Bun](https://bun.sh) runtime @@ -10,7 +31,7 @@ CLI for the [Plane](https://plane.so) project management API. ```bash curl -fsSL https://bun.sh/install | bash -bun install -g @aaronshaf/plane +bun install -g @backslash-ux/plane ``` ## Setup @@ -96,16 +117,26 @@ Priorities: `urgent` | `high` | `medium` | `low` | `none` Full API reference: https://developers.plane.so/api-reference/introduction +## Structured Output + +List-oriented commands support `--json` and `--xml` for automation. `plane issue get PROJ-N` always returns full JSON. + +```bash +plane projects list --json +plane issues list PROJ --xml +plane cycles list PROJ --json +``` + ## Upgrade ```bash -bun update -g @aaronshaf/plane +bun update -g @backslash-ux/plane ``` ## Development ```bash -git clone https://github.com/aaronshaf/plane-cli +git clone https://github.com/backslash-ux/plane-cli cd plane-cli bun install @@ -115,6 +146,21 @@ bun run test:coverage bun run typecheck ``` +## Project Docs + +- [AGENTS.md](./AGENTS.md) for the versioned baseline context shared with AI coding agents contributing to the repo. +- [CONTRIBUTING.md](./CONTRIBUTING.md) for development workflow, quality gates, and pull request expectations. +- [CHANGELOG.md](./CHANGELOG.md) for notable project changes. +- [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) for the CLI structure and design boundaries. +- [docs/RELEASING.md](./docs/RELEASING.md) for the maintainer release flow. +- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for community behavior expectations. +- [SECURITY.md](./SECURITY.md) for vulnerability reporting guidance. +- [SKILL.md](./SKILL.md) for AI-agent usage patterns when operating the CLI itself. + +## Contributing + +Contributions should happen through GitHub issues and pull requests. Before starting non-trivial work, check for an existing issue or open one describing the problem, proposed CLI workflow, and user impact. Keep changes scoped, keep command/help/docs updates aligned, and run the narrowest relevant tests plus `bun run typecheck` before sending a change. + ## License -MIT +MIT. See [LICENSE](./LICENSE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..bab8e0a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,33 @@ +# Security Policy + +## Reporting A Vulnerability + +Please do not open a public issue for suspected security vulnerabilities. + +Instead, report the issue privately to the maintainers through the repository contact channels and include: + +- a clear description of the issue +- affected commands, files, or workflows +- steps to reproduce +- proof of concept or logs if available +- any suggested mitigation or fix + +The maintainer goal is to acknowledge reports promptly, investigate the issue, and coordinate a fix before public disclosure when the report is valid. + +## Scope + +Security reports are especially helpful for issues involving: + +- credential handling or config exposure +- unsafe command execution paths +- malformed API response handling +- output injection risks in machine-readable or human-readable modes +- dependency or packaging risks that affect users of the published CLI + +## Supported Versions + +The project currently prioritizes fixes on the latest code in the default branch and the latest published package version. + +## Disclosure Expectations + +Please allow time for investigation and remediation before public disclosure. If the issue is accepted, the fix and any user guidance can be documented in a coordinated release. \ No newline at end of file diff --git a/SKILL.md b/SKILL.md index 65b580e..65730de 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,5 +1,5 @@ --- -name: plane +name: plane-cli description: > Use when working with Plane project management via the `plane` CLI. Covers listing/creating/updating/deleting issues, managing cycles, modules, pages, @@ -14,7 +14,7 @@ The `plane` CLI wraps the Plane REST API. It is designed for both human and AI agent use. Install it globally with bun: ```bash -bun install -g @aaronshaf/plane +bun install -g @backslash-ux/plane ``` ## Configuration diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..01e1932 --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,58 @@ +# Architecture Overview + +## Goal + +The Plane CLI is structured to keep Plane workflows scriptable, discoverable, and safe for both humans and AI agents. Commands should mirror Plane concepts closely and avoid forcing users to depend on hidden IDs or UI-only context. + +## Execution Flow + +The CLI starts in `bin/plane`, initializes runtime wiring in `src/bin.ts`, and registers subcommands in `src/app.ts`. + +## Main Boundaries + +### Command Layer + +- `src/commands/*.ts` +- Defines CLI args and options with `@effect/cli`. +- Implements command handlers with `Effect.gen(function* () { ... })`. +- Owns user-facing command descriptions and examples. + +### API Layer + +- `src/api.ts` +- Centralizes HTTP access, configuration loading, and response handling. +- Includes intentional lenient JSON parsing for Plane responses that may contain bare control characters inside HTML fields. + +### Schema Layer + +- `src/config.ts` +- Defines Effect schemas used to validate API responses. +- New API integrations should decode responses here instead of passing untyped payloads deeper into the CLI. + +### Resolution Layer + +- `src/resolve.ts` +- Handles project resolution, issue reference parsing, and common ID lookup flows. +- Includes process-local project caching used across commands. + +### Output And Formatting + +- `src/output.ts` owns shared `--json` and `--xml` behavior. +- `src/format.ts` owns human-readable formatting helpers. + +## Design Principles + +- Prefer discoverable workflows. If a command needs a UUID, the CLI should also expose a list or get path that helps users obtain it. +- Preserve shared output behavior rather than inventing command-specific machine formats. +- Keep changes small and vertical so docs, tests, and command behavior stay aligned. +- Favor explicit validation over implicit assumptions when consuming the Plane API. + +## Testing Model + +- Tests live in `tests/`. +- The project uses Bun's test runner plus MSW. +- Tests should mock HTTP interactions and avoid real user configuration. + +## Work Tracking Model + +Public work tracking for this repository should happen through GitHub issues and pull requests. Maintainers may use local planning notes during development, but public contributor flow should rely on the issue tracker and release documentation instead of private planning documents. \ No newline at end of file diff --git a/docs/RELEASING.md b/docs/RELEASING.md new file mode 100644 index 0000000..1647e02 --- /dev/null +++ b/docs/RELEASING.md @@ -0,0 +1,42 @@ +# Releasing + +## Overview + +This repository publishes from Git tags that match `v*` through [`.github/workflows/publish.yml`](../.github/workflows/publish.yml). + +## Before Releasing + +1. Update [CHANGELOG.md](../CHANGELOG.md) with user-facing changes. +2. Ensure public docs such as [README.md](../README.md) and [SKILL.md](../SKILL.md) match the shipped CLI behavior. +3. Confirm linked GitHub issues or milestone notes accurately reflect what is shipping. +4. Run the repository gate locally: + +```bash +bun run check:all +``` + +## Release Steps + +1. Update `version` in `package.json`. +2. Commit the version and changelog updates. +3. Create and push a Git tag in the form `vX.Y.Z`. + +```bash +git tag vX.Y.Z +git push origin vX.Y.Z +``` + +4. The publish workflow will: + - install dependencies with Bun + - run the repository gate + - publish the package to npm + - create a GitHub release with generated notes + +## Required Repository Secrets + +- `NPM_CONFIG_TOKEN` for package publication. + +## Notes + +- If the release changes command behavior, keep related GitHub issues, release notes, and docs aligned as part of the same change. +- If a release uncovers a workflow gap, document it here instead of relying on maintainer memory. \ No newline at end of file diff --git a/package.json b/package.json index a29cf9c..6e37257 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,25 @@ { - "name": "@aaronshaf/plane", + "name": "@backslash-ux/plane", "publishConfig": { "access": "public" }, "version": "1.0.0", "description": "CLI for the Plane project management API", + "author": "Gabriel Reynold and Contributors", + "license": "MIT", + "files": [ + "bin/", + "src/", + "README.md", + "CHANGELOG.md", + "LICENSE", + "SKILL.md" + ], "keywords": [ + "ai", + "agent", "plane", + "plane-api", "project-management", "cli", "effect", @@ -20,12 +33,15 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/aaronshaf/plane-cli.git" + "url": "git+https://github.com/backslash-ux/plane-cli.git" }, "bugs": { - "url": "https://github.com/aaronshaf/plane-cli/issues" + "url": "https://github.com/backslash-ux/plane-cli/issues" + }, + "homepage": "https://github.com/backslash-ux/plane-cli#readme", + "engines": { + "bun": ">=1.0.0" }, - "homepage": "https://github.com/aaronshaf/plane-cli#readme", "scripts": { "dev": "bun src/bin.ts", "test": "bun test", @@ -34,7 +50,7 @@ "typecheck": "tsc --noEmit", "format": "biome format --write src/ tests/", "format:check": "biome check src/ tests/", - "check:all": "bun run typecheck && bun run format:check && bun run test:coverage", + "check:all": "bun run typecheck && bun run format:check && bun scripts/check-file-size.ts && bun run test:coverage:check", "prepare": "husky" }, "dependencies": {