diff --git a/.changeset/README.md b/.changeset/README.md index dffd5644e3..d8415af769 100644 --- a/.changeset/README.md +++ b/.changeset/README.md @@ -25,7 +25,7 @@ Use this structure for your changeset content: ```markdown --- -"@fission-ai/openspec": patch +"@codewalla_india/openspec": patch --- ### New Features diff --git a/.changeset/config.json b/.changeset/config.json index 50cbb51321..67d5749531 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@changesets/config/schema.json", "changelog": [ "@changesets/changelog-github", - { "repo": "Fission-AI/OpenSpec" } + { "repo": "codewalla-engineering/OpenSpec" } ], "commit": false, "fixed": [], diff --git a/.changeset/escape-yaml-carriage-return.md b/.changeset/escape-yaml-carriage-return.md index 23594df892..eed6cbcdd5 100644 --- a/.changeset/escape-yaml-carriage-return.md +++ b/.changeset/escape-yaml-carriage-return.md @@ -1,5 +1,5 @@ --- -"@fission-ai/openspec": patch +"@codewalla_india/openspec": patch --- fix(adapters): escape carriage returns in generated YAML frontmatter diff --git a/.github/workflows/release-prepare.yml b/.github/workflows/release-prepare.yml index 0a58d8e87c..a0899b6b84 100644 --- a/.github/workflows/release-prepare.yml +++ b/.github/workflows/release-prepare.yml @@ -15,7 +15,7 @@ concurrency: jobs: prepare: - if: github.repository == 'Fission-AI/OpenSpec' + if: github.repository == 'codewalla-engineering/OpenSpec' runs-on: ubuntu-latest steps: # Generate GitHub App token first - used for checkout and changesets diff --git a/.gitignore b/.gitignore index 3ed26016aa..5858e6fa40 100644 --- a/.gitignore +++ b/.gitignore @@ -159,3 +159,5 @@ opencode.json # Bob .bob/ +.cursor/... +.windsurf/... diff --git a/CHANGELOG.md b/CHANGELOG.md index e4d858446b..db45409c34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# @fission-ai/openspec +# @codewalla_india/openspec ## 1.4.1 diff --git a/README.md b/README.md index 8876a8b3e1..92b6092876 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + OpenSpec logo @@ -8,8 +8,8 @@

- CI - npm version + CI + npm version License: MIT Discord

@@ -17,9 +17,9 @@
The most loved spec framework. -[![Stars](https://img.shields.io/github/stars/Fission-AI/OpenSpec?style=flat-square&label=Stars)](https://github.com/Fission-AI/OpenSpec/stargazers) -[![Downloads](https://img.shields.io/npm/dm/@fission-ai/openspec?style=flat-square&label=Downloads/mo)](https://www.npmjs.com/package/@fission-ai/openspec) -[![Contributors](https://img.shields.io/github/contributors/Fission-AI/OpenSpec?style=flat-square&label=Contributors)](https://github.com/Fission-AI/OpenSpec/graphs/contributors) +[![Stars](https://img.shields.io/github/stars/codewalla-engineering/OpenSpec?style=flat-square&label=Stars)](https://github.com/codewalla-engineering/OpenSpec/stargazers) +[![Downloads](https://img.shields.io/npm/dm/@codewalla_india/openspec?style=flat-square&label=Downloads/mo)](https://www.npmjs.com/package/@codewalla_india/openspec) +[![Contributors](https://img.shields.io/github/contributors/codewalla-engineering/OpenSpec?style=flat-square&label=Contributors)](https://github.com/codewalla-engineering/OpenSpec/graphs/contributors)

@@ -64,7 +64,9 @@ AI: Created openspec/changes/add-dark-mode/ Ready for implementation! You: /opsx:apply -AI: Implementing tasks... +AI: Comprehension check — 6 questions on your proposal, design, specs, and tasks... + ✓ 83% — ready to implement. + Implementing tasks... ✓ 1.1 Add theme context provider ✓ 1.2 Create toggle component ✓ 2.1 Add CSS variables @@ -92,7 +94,7 @@ AI: Archived to openspec/changes/archive/2025-01-23-add-dark-mode/ Install OpenSpec globally: ```bash -npm install -g @fission-ai/openspec@latest +npm install -g @codewalla_india/openspec@latest ``` Then navigate to your project directory and initialize: @@ -106,8 +108,9 @@ Now talk to your AI: - **Not sure what to build yet?** Start with `/opsx:explore`, a no-stakes thinking partner that reads your code, weighs options, and shapes a plan before anything is written. ([Explore guide](docs/explore.md)) - **Already know what you want?** Go straight to `/opsx:propose `. +- **Ready to implement?** Run `/opsx:apply` — a short comprehension quiz checks you understand the proposal, design, specs, and tasks before any code is written. -Both are in the default profile. If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/opsx:verify`, `/opsx:bulk-archive`, `/opsx:onboard`), select it with `openspec config profile` and apply with `openspec update`. +The default `core` profile includes `/opsx:explore`, `/opsx:propose`, `/opsx:apply`, `/opsx:sync`, and `/opsx:archive`. If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/opsx:verify`, `/opsx:bulk-archive`, `/opsx:onboard`), select it with `openspec config profile` and apply with `openspec update`. > [!NOTE] > Not sure if your tool is supported? [View the full list](docs/supported-tools.md) – we support 25+ tools and growing. @@ -165,7 +168,7 @@ AI coding assistants are powerful but unpredictable when requirements live only **Upgrade the package** ```bash -npm install -g @fission-ai/openspec@latest +npm install -g @codewalla_india/openspec@latest ``` **Refresh agent instructions** @@ -182,6 +185,8 @@ openspec update **Context hygiene**: OpenSpec benefits from a clean context window. Clear your context before starting implementation and maintain good context hygiene throughout your session. +**Comprehension check**: `/opsx:apply` runs a short quiz (enabled by default) on proposal, design, specs, and pending tasks before implementation. Questions test holistic understanding of the change, not task numbers or checklist trivia. Disable with `comprehension.enabled: false` in `openspec/config.yaml`. See [Workflows](docs/workflows.md#comprehension-quiz-before-apply). + ## Contributing **Small fixes** — Bug fixes, typo corrections, and minor improvements can be submitted directly as PRs. diff --git a/README_OLD.md b/README_OLD.md index e0f7f39a82..aa71201346 100644 --- a/README_OLD.md +++ b/README_OLD.md @@ -1,5 +1,5 @@

- + @@ -10,9 +10,9 @@

Spec-driven development for AI coding assistants.

- CI - npm version - node version + CI + npm version + node version License: MIT Conventional Commits Discord @@ -143,7 +143,7 @@ These tools automatically read workflow instructions from `openspec/AGENTS.md`. **Option A: Using npm** ```bash -npm install -g @fission-ai/openspec@latest +npm install -g @codewalla_india/openspec@latest ``` Verify installation: @@ -155,12 +155,12 @@ openspec --version Run OpenSpec directly without installation: ```bash -nix run github:Fission-AI/OpenSpec -- init +nix run github:codewalla-engineering/OpenSpec -- init ``` Or install to your profile: ```bash -nix profile install github:Fission-AI/OpenSpec +nix profile install github:codewalla-engineering/OpenSpec ``` Or add to your development environment in `flake.nix`: @@ -168,7 +168,7 @@ Or add to your development environment in `flake.nix`: { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - openspec.url = "github:Fission-AI/OpenSpec"; + openspec.url = "github:codewalla-engineering/OpenSpec"; }; outputs = { nixpkgs, openspec, ... }: { @@ -403,7 +403,7 @@ Run `openspec update` whenever someone switches tools so your agents pick up the 1. **Upgrade the package** ```bash - npm install -g @fission-ai/openspec@latest + npm install -g @codewalla_india/openspec@latest ``` 2. **Refresh agent instructions** - Run `openspec update` inside each project to regenerate AI guidance and ensure the latest slash commands are active. diff --git a/docs/README.md b/docs/README.md index 627d76e31d..127eda6e6b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -88,7 +88,7 @@ That second one matters more than it looks. OpenSpec has two halves: a command l ## The thirty-second version ```text -1. Install npm install -g @fission-ai/openspec@latest +1. Install npm install -g @codewalla_india/openspec@latest 2. Initialize cd your-project && openspec init 3. Explore (in your AI chat) /opsx:explore ← optional, but a great habit 4. Propose (in your AI chat) /opsx:propose add-dark-mode @@ -101,7 +101,7 @@ Steps 1 and 2 happen in your terminal. The rest happen in your AI assistant's ch ## Where else to get help - **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) for questions, ideas, and help. -- **GitHub Issues:** [github.com/Fission-AI/OpenSpec/issues](https://github.com/Fission-AI/OpenSpec/issues) for bugs and feature requests. +- **GitHub Issues:** [github.com/codewalla-engineering/OpenSpec/issues](https://github.com/codewalla-engineering/OpenSpec/issues) for bugs and feature requests. - **`openspec feedback "your message"`** sends feedback straight from your terminal (it opens a GitHub issue). Found something in these docs that's wrong, stale, or confusing? That's a bug. Open an issue or a PR. Documentation improvements are some of the most valuable contributions you can make. diff --git a/docs/agent-contract.md b/docs/agent-contract.md index 841ccafec1..df4669da78 100644 --- a/docs/agent-contract.md +++ b/docs/agent-contract.md @@ -64,7 +64,7 @@ Change: `{ "id", "title", "deltaCount", "deltas": [...], "root" }`. Spec: `{ "id ### 4.6 `instructions apply --json` `{ "changeName", "changeDir", "schemaName", "contextFiles": { "": ["/abs", ...] }, "progress": {total,complete,remaining}, "tasks": [{id,description,done}], "state": "blocked"|"all_done"|"ready", "missingArtifacts"?, "missingComprehension"?, "comprehension"?: { "required", "passed", "thresholdPercent", "bestScorePercent"?, "questionCount", "requirementCount", "scenarioCount", "pendingTaskCount", "attempts"? }, "instruction", "references"?, "root" }`. -When comprehension is required and not passed, `state` is `"blocked"` and `missingComprehension` is `true`. +When comprehension is required and not passed, `state` is `"blocked"` and `missingComprehension` is `true`. The blocked `instruction` references proposal, design, specs, and tasks; agents generate quiz questions from those artifacts (not task numbers or verbatim checkbox text). Record pass: `openspec instructions apply --change --record-comprehension-pass --score <0-100> [--attempt ] [--question-count ] --json` → `{ "recorded": true, "comprehensionPass": {...}, ...apply fields..., "root" }` or exit 1 with `comprehension_score_below_threshold`. diff --git a/docs/cli.md b/docs/cli.md index 8f9c03baed..30c5a79720 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -170,7 +170,7 @@ openspec update [path] [options] ```bash # Update instruction files after npm upgrade -npm update @fission-ai/openspec +npm update @codewalla_india/openspec openspec update ``` @@ -977,7 +977,7 @@ openspec schema which spec-driven ``` spec-driven resolves from: package - Source: /usr/local/lib/node_modules/@fission-ai/openspec/schemas/spec-driven + Source: /usr/local/lib/node_modules/@codewalla_india/openspec/schemas/spec-driven ``` **Schema precedence:** diff --git a/docs/customization.md b/docs/customization.md index e2e92b4868..fd2cdf1dbf 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -52,7 +52,7 @@ comprehension: max_questions: 10 ``` -Set `comprehension.enabled: false` to skip the spec and task quiz gate on `/opsx:apply`. +Set `comprehension.enabled: false` to skip the proposal/design/spec/task quiz gate on `/opsx:apply`. ### How It Works diff --git a/docs/faq.md b/docs/faq.md index 9b9198fd32..1c691ecf84 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -136,18 +136,18 @@ It collects anonymous usage stats: command names and version only. No arguments, ### How do I upgrade? -Two steps. Upgrade the package (`npm install -g @fission-ai/openspec@latest`), then run `openspec update` inside each project to refresh the generated skills and commands. +Two steps. Upgrade the package (`npm install -g @codewalla_india/openspec@latest`), then run `openspec update` inside each project to refresh the generated skills and commands. ### How do I uninstall OpenSpec? -There's no uninstall command, because it's just a global package plus files in your project. Remove the package (`npm uninstall -g @fission-ai/openspec`), and optionally delete the `openspec/` directory and the generated tool files. Step-by-step, including what's safe to keep, is in [Installation: Uninstalling](installation.md#uninstalling). +There's no uninstall command, because it's just a global package plus files in your project. Remove the package (`npm uninstall -g @codewalla_india/openspec`), and optionally delete the `openspec/` directory and the generated tool files. Step-by-step, including what's safe to keep, is in [Installation: Uninstalling](installation.md#uninstalling). ## Getting help ### Where do I ask questions or report bugs? - **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) -- **GitHub Issues:** [github.com/Fission-AI/OpenSpec/issues](https://github.com/Fission-AI/OpenSpec/issues) +- **GitHub Issues:** [github.com/codewalla-engineering/OpenSpec/issues](https://github.com/codewalla-engineering/OpenSpec/issues) - **From your terminal:** `openspec feedback "your message"` opens a GitHub issue for you. ### These docs are wrong or confusing. What do I do? diff --git a/docs/getting-started.md b/docs/getting-started.md index 7bb46c4e80..ef62db5ee2 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -14,7 +14,7 @@ This guide explains how OpenSpec works after you've installed and initialized it The whole loop, with each step labeled by where it happens: ```text -TERMINAL $ npm install -g @fission-ai/openspec@latest +TERMINAL $ npm install -g @codewalla_india/openspec@latest TERMINAL $ cd your-project && openspec init AI CHAT /opsx:explore (optional: think it through first) AI CHAT /opsx:propose add-dark-mode (AI drafts the plan; you review it) diff --git a/docs/how-commands-work.md b/docs/how-commands-work.md index e60c9a7618..0a65f9d43d 100644 --- a/docs/how-commands-work.md +++ b/docs/how-commands-work.md @@ -129,7 +129,7 @@ For what each command does in detail, see [Commands](commands.md). For when to r Putting it together, here is the whole sequence with each step labeled by where it happens. ```text -TERMINAL $ npm install -g @fission-ai/openspec@latest +TERMINAL $ npm install -g @codewalla_india/openspec@latest TERMINAL $ cd your-project TERMINAL $ openspec init (installs slash commands into your AI tool) diff --git a/docs/installation.md b/docs/installation.md index 3714f187bb..9501023831 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -9,19 +9,19 @@ ### npm ```bash -npm install -g @fission-ai/openspec@latest +npm install -g @codewalla_india/openspec@latest ``` ### pnpm ```bash -pnpm add -g @fission-ai/openspec@latest +pnpm add -g @codewalla_india/openspec@latest ``` ### yarn ```bash -yarn global add @fission-ai/openspec@latest +yarn global add @codewalla_india/openspec@latest ``` ### bun @@ -30,7 +30,7 @@ Bun can install OpenSpec globally, but OpenSpec currently runs on Node.js. You still need Node.js 20.19.0 or higher available on `PATH`. ```bash -bun add -g @fission-ai/openspec@latest +bun add -g @codewalla_india/openspec@latest ``` ## Nix @@ -38,13 +38,13 @@ bun add -g @fission-ai/openspec@latest Run OpenSpec directly without installation: ```bash -nix run github:Fission-AI/OpenSpec -- init +nix run github:codewalla-engineering/OpenSpec -- init ``` Or install to your profile: ```bash -nix profile install github:Fission-AI/OpenSpec +nix profile install github:codewalla-engineering/OpenSpec ``` Or add to your development environment in `flake.nix`: @@ -53,7 +53,7 @@ Or add to your development environment in `flake.nix`: { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - openspec.url = "github:Fission-AI/OpenSpec"; + openspec.url = "github:codewalla-engineering/OpenSpec"; }; outputs = { nixpkgs, openspec, ... }: { @@ -75,7 +75,7 @@ openspec --version Upgrade the package, then refresh each project's generated files: ```bash -npm install -g @fission-ai/openspec@latest # or pnpm/yarn/bun equivalent +npm install -g @codewalla_india/openspec@latest # or pnpm/yarn/bun equivalent openspec update # run inside each project ``` @@ -88,7 +88,7 @@ There's no `openspec uninstall` command, because OpenSpec is just a global packa **1. Remove the global package:** ```bash -npm uninstall -g @fission-ai/openspec # or: pnpm rm -g / yarn global remove / bun rm -g +npm uninstall -g @codewalla_india/openspec # or: pnpm rm -g / yarn global remove / bun rm -g ``` **2. Remove OpenSpec from a project (optional).** Delete the `openspec/` directory if you no longer want its specs and changes: diff --git a/docs/migration-guide.md b/docs/migration-guide.md index d6355740f7..7a1f91e1cb 100644 --- a/docs/migration-guide.md +++ b/docs/migration-guide.md @@ -592,5 +592,5 @@ project/ ## Getting Help - **Discord**: [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) -- **GitHub Issues**: [github.com/Fission-AI/OpenSpec/issues](https://github.com/Fission-AI/OpenSpec/issues) +- **GitHub Issues**: [github.com/codewalla-engineering/OpenSpec/issues](https://github.com/codewalla-engineering/OpenSpec/issues) - **Documentation**: [docs/opsx.md](opsx.md) for the full OPSX reference diff --git a/docs/opsx.md b/docs/opsx.md index bebe0a51dd..5e004517d6 100644 --- a/docs/opsx.md +++ b/docs/opsx.md @@ -656,4 +656,4 @@ openspec schema validate my-workflow This is rough. That's intentional — we're learning what works. -Found a bug? Have ideas? Join us on [Discord](https://discord.gg/YctCnvvshC) or open an issue on [GitHub](https://github.com/Fission-AI/openspec/issues). +Found a bug? Have ideas? Join us on [Discord](https://discord.gg/YctCnvvshC) or open an issue on [GitHub](https://github.com/codewalla-engineering/OpenSpec/issues). diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 07b5bb725d..9a599a1c99 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -9,7 +9,7 @@ Concrete fixes for concrete problems. Each entry names a symptom, explains the l The CLI isn't installed, or your shell can't find it. Install it globally and check: ```bash -npm install -g @fission-ai/openspec@latest +npm install -g @codewalla_india/openspec@latest openspec --version ``` @@ -160,7 +160,7 @@ That's intentional. OpenSpec never deletes `project.md` automatically because it ## Still stuck? - **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) -- **GitHub Issues:** [github.com/Fission-AI/OpenSpec/issues](https://github.com/Fission-AI/OpenSpec/issues) +- **GitHub Issues:** [github.com/codewalla-engineering/OpenSpec/issues](https://github.com/codewalla-engineering/OpenSpec/issues) - **From your terminal:** `openspec feedback "what went wrong"` opens an issue for you. When you report a problem, include your OpenSpec version (`openspec --version`), your Node version (`node --version`), your AI tool, and the exact command and output. It makes help much faster. diff --git a/docs/workflows.md b/docs/workflows.md index 7779e6023f..afe34feb08 100644 --- a/docs/workflows.md +++ b/docs/workflows.md @@ -249,7 +249,7 @@ Bulk archive detects when multiple changes touch the same specs and resolves con #### Comprehension quiz before apply -By default, `/opsx:apply` runs a **multiple-choice comprehension quiz** on delta specs and pending tasks before any implementation (5–10 questions, scaled to spec and task size). You need **≥ 80%** to proceed. The CLI blocks `openspec instructions apply` until a pass is recorded; failed attempts get new questions. +By default, `/opsx:apply` runs a **multiple-choice comprehension quiz** on proposal, design, delta specs, and pending tasks before any implementation (5–10 questions, scaled to change size). Questions test holistic understanding—motivation, design decisions, requirements, and implementation approach—not task numbers or verbatim checkbox text. You need **≥ 80%** to proceed. The CLI blocks `openspec instructions apply` until a pass is recorded; failed attempts get new questions. Disable for a project in `openspec/config.yaml`: diff --git a/eslint.config.js b/eslint.config.js index b5437a91f1..7d94641a53 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -8,7 +8,7 @@ export default tseslint.config( // Prevent static imports of @inquirer modules to avoid pre-commit hook hangs. // These modules have side effects that can keep the Node.js event loop alive // when stdin is piped. Use dynamic import() instead. - // See: https://github.com/Fission-AI/OpenSpec/issues/367 + // See: https://github.com/codewalla-engineering/OpenSpec/issues/367 'no-restricted-imports': [ 'error', { diff --git a/flake.nix b/flake.nix index 5594b39ce9..29ee07a41a 100644 --- a/flake.nix +++ b/flake.nix @@ -73,7 +73,7 @@ meta = with pkgs.lib; { description = "AI-native system for spec-driven development"; - homepage = "https://github.com/Fission-AI/OpenSpec"; + homepage = "https://github.com/codewalla-engineering/OpenSpec"; license = licenses.mit; maintainers = [ ]; mainProgram = "openspec"; diff --git a/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md b/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md index 1bd94bf652..dc260d58ec 100644 --- a/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +++ b/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md @@ -11,7 +11,7 @@ Today’s process requires maintainers to merge the Changesets PR, cut a tag, an 1) Phase 1 — Dry run (no publish) - Update the existing `release-prepare.yml` to wire up `changesets/action` with `createGithubReleases: true` and a no-op `publish` command (e.g., `echo 'dry run'`). - Keep `.github/workflows/release-publish.yml` intact. This avoids any publish path changes while we verify that the version PR behavior and permissions are correct. - - Add a repository guard (`if: github.repository == 'Fission-AI/OpenSpec'`) and a concurrency group for safety. + - Add a repository guard (`if: github.repository == 'codewalla-engineering/OpenSpec'`) and a concurrency group for safety. 2) Phase 2 — Enable publish and consolidate - Add `"release": "pnpm run build && pnpm exec changeset publish"` to `package.json`. @@ -20,15 +20,15 @@ Today’s process requires maintainers to merge the Changesets PR, cut a tag, an ## Guardrails - Concurrency: `concurrency: { group: release-\\${{ github.ref }}, cancel-in-progress: false }` on the workflow to serialize releases. -- Repository/branch guard: run publish logic only on upstream `main` (`if: github.repository == 'Fission-AI/OpenSpec' && github.ref == 'refs/heads/main'`). +- Repository/branch guard: run publish logic only on upstream `main` (`if: github.repository == 'codewalla-engineering/OpenSpec' && github.ref == 'refs/heads/main'`). - Permissions: ensure `contents: write` and `pull-requests: write` for opening/updating the version PR; `packages: read` optional. ## Rollback and Hotfixes -- Rollback: revert the release PR merge (which reverts version bumps/changelog); if a tag or GitHub release was created, delete the tag and release; deprecate the npm version if necessary (`npm deprecate @fission-ai/openspec@x.y.z 'reason'`). +- Rollback: revert the release PR merge (which reverts version bumps/changelog); if a tag or GitHub release was created, delete the tag and release; deprecate the npm version if necessary (`npm deprecate @codewalla_india/openspec@x.y.z 'reason'`). - Hotfix (urgent, no pending changesets): create a changeset for the fix and merge the release PR; in emergencies, run a manual bump/publish but reconcile with Changesets by adding a follow-up changeset to align versions. ## Required Secrets -- `NPM_TOKEN` with publish rights for the `@fission-ai` scope. +- `NPM_TOKEN` with publish rights for the `@codewalla_india` scope. - Default `GITHUB_TOKEN` (provided by GitHub) for opening/updating the version PR and creating GitHub releases. ## How the Maintainer Flow Changes diff --git a/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md b/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md index ec4cba3b79..e34fd52700 100644 --- a/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md +++ b/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md @@ -6,7 +6,7 @@ The Nix ecosystem has specific patterns for packaging Node.js/pnpm projects that ## Goals -- Enable OpenSpec to be run directly via `nix run github:Fission-AI/OpenSpec` +- Enable OpenSpec to be run directly via `nix run github:codewalla-engineering/OpenSpec` - Support all major platforms (Linux x86/ARM, macOS x86/ARM) - Use existing pnpm-lock.yaml for reproducible builds - Provide development environment for Nix users diff --git a/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md b/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md index 77cb3973cd..422d09a860 100644 --- a/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md +++ b/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md @@ -1,6 +1,6 @@ ## Why -OpenSpec users on NixOS or using the Nix package manager cannot easily install or run OpenSpec without going through npm. Adding a Nix flake makes OpenSpec a first-class citizen in the Nix ecosystem, enabling users to run `nix run github:Fission-AI/OpenSpec -- init` or include OpenSpec in their development environments declaratively. +OpenSpec users on NixOS or using the Nix package manager cannot easily install or run OpenSpec without going through npm. Adding a Nix flake makes OpenSpec a first-class citizen in the Nix ecosystem, enabling users to run `nix run github:codewalla-engineering/OpenSpec -- init` or include OpenSpec in their development environments declaratively. ## What Changes diff --git a/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md b/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md index 8672490352..db8ca83fab 100644 --- a/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md +++ b/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md @@ -25,12 +25,12 @@ The system SHALL provide a Nix flake that builds OpenSpec for multiple platforms The system SHALL allow users to run OpenSpec directly from GitHub without installing. #### Scenario: Run init command from GitHub -- **WHEN** user runs `nix run github:Fission-AI/OpenSpec -- init` +- **WHEN** user runs `nix run github:codewalla-engineering/OpenSpec -- init` - **THEN** system downloads and builds OpenSpec - **AND** executes `openspec init` command #### Scenario: Run any OpenSpec command -- **WHEN** user runs `nix run github:Fission-AI/OpenSpec -- ` +- **WHEN** user runs `nix run github:codewalla-engineering/OpenSpec -- ` - **THEN** system executes `openspec ` ### Requirement: pnpm dependency management diff --git a/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md b/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md index 190d9ec4bd..f1e9df5e49 100644 --- a/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md +++ b/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md @@ -57,7 +57,7 @@ - [x] 9.2 Test `nix run . -- --version` works - [x] 9.3 Test `nix develop` provides correct environment - [ ] 9.4 Test on macOS if available -- [ ] 9.5 Test `nix run github:Fission-AI/OpenSpec -- init` after merge to main +- [ ] 9.5 Test `nix run github:codewalla-engineering/OpenSpec -- init` after merge to main ## 10. Documentation diff --git a/openspec/changes/fix-opencode-commands-directory/proposal.md b/openspec/changes/fix-opencode-commands-directory/proposal.md index ec41e01e56..9b6ef11f40 100644 --- a/openspec/changes/fix-opencode-commands-directory/proposal.md +++ b/openspec/changes/fix-opencode-commands-directory/proposal.md @@ -1,6 +1,6 @@ ## Why -The OpenCode adapter uses `.opencode/command/` (singular) for its commands directory, but OpenCode's official documentation specifies `.opencode/commands/` (plural). Every other adapter in the codebase also uses plural directory names (`.claude/commands/`, `.cursor/commands/`, `.factory/commands/`, etc.). This inconsistency was introduced in Oct 2025 without documented rationale. Fixes [#748](https://github.com/Fission-AI/OpenSpec/issues/748). +The OpenCode adapter uses `.opencode/command/` (singular) for its commands directory, but OpenCode's official documentation specifies `.opencode/commands/` (plural). Every other adapter in the codebase also uses plural directory names (`.claude/commands/`, `.cursor/commands/`, `.factory/commands/`, etc.). This inconsistency was introduced in Oct 2025 without documented rationale. Fixes [#748](https://github.com/codewalla-engineering/OpenSpec/issues/748). ## What Changes diff --git a/openspec/changes/graceful-status-no-changes/proposal.md b/openspec/changes/graceful-status-no-changes/proposal.md index dc24d61b87..14975c48cb 100644 --- a/openspec/changes/graceful-status-no-changes/proposal.md +++ b/openspec/changes/graceful-status-no-changes/proposal.md @@ -1,6 +1,6 @@ ## Why -When `openspec status` is called without `--change` and no changes exist (e.g., during onboarding on a freshly initialized project), the CLI throws a fatal error: `No changes found. Create one with: openspec new change `. This breaks the onboarding flow because AI agents may call `openspec status` before any change has been created, causing the agent to halt or report failure. Fixes [#714](https://github.com/Fission-AI/OpenSpec/issues/714). +When `openspec status` is called without `--change` and no changes exist (e.g., during onboarding on a freshly initialized project), the CLI throws a fatal error: `No changes found. Create one with: openspec new change `. This breaks the onboarding flow because AI agents may call `openspec status` before any change has been created, causing the agent to halt or report failure. Fixes [#714](https://github.com/codewalla-engineering/OpenSpec/issues/714). ## What Changes diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/.comprehension-pass.yaml b/openspec/changes/include-questions-about-tasks-in-comprehension-check/.comprehension-pass.yaml new file mode 100644 index 0000000000..869e488923 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/.comprehension-pass.yaml @@ -0,0 +1,8 @@ +version: 1 +passed: true +score_percent: 100 +threshold_percent: 80 +attempt: 1 +question_count: 5 +spec_fingerprint: cee137c1f1cf2be8a550362e3e182655ed0cae4f1027b7f2ff11750790dc7d01 +passed_at: 2026-06-26T12:07:27.503Z diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/.openspec.yaml b/openspec/changes/include-questions-about-tasks-in-comprehension-check/.openspec.yaml new file mode 100644 index 0000000000..578bd54974 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/.openspec.yaml @@ -0,0 +1,2 @@ +schema: spec-driven +created: 2026-06-26 diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/design.md b/openspec/changes/include-questions-about-tasks-in-comprehension-check/design.md new file mode 100644 index 0000000000..6571308eee --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/design.md @@ -0,0 +1,75 @@ +## Context + +Apply comprehension quiz rules live in a single shared template (`src/core/templates/workflows/comprehension-guidance.ts`) interpolated into apply skill/command generators. Today it maps questions to delta spec requirements/scenarios or pending task lines, uses `design.md` only for distractors, and does not read `proposal.md` at all. Agents therefore pass quizzes without demonstrating they understand motivation, design trade-offs, or the implementation plan as a whole. + +## Goals / Non-Goals + +**Goals:** + +- Expand quiz sources to proposal, design, specs/scenarios, and pending tasks +- Require task questions to test conceptual implementation understanding (scope, approach, dependencies, alignment)—never task numbers or verbatim checkbox text +- Keep balanced minimum coverage when all artifact types exist +- Update user-facing docs to match + +**Non-Goals:** + +- Changing comprehension gate mechanics (threshold, fingerprint, pass recording, question count scaling) +- Adding CLI flags or new config knobs for quiz composition +- Auto-generating quiz questions in the CLI (still agent-driven via AskUserQuestion) + +## Decisions + +### 1. Centralize rule changes in `comprehension-guidance.ts` + +**Choice:** Edit the shared constant only; apply skill/command templates pick it up via `apply-change.ts`. + +**Rationale:** One source of truth avoids drift between Cursor, Windsurf, and future tool outputs. Matches how comprehension was originally added. + +**Alternatives considered:** Duplicate edits in each `.cursor`/`.windsurf` file — rejected because `openspec update` would overwrite manual edits. + +### 2. Four artifact categories with minimum coverage + +**Choice:** When proposal, design, specs (with requirements), and pending tasks all exist, require at least one question from each category; fill remaining slots from any category. + +**Rationale:** Ensures holistic understanding without forcing equal splits for small changes. Question count still scales via existing `comprehension.questionCount`. + +### 3. Explicit prohibitions for task trivia + +**Choice:** Document forbidden patterns inline in guidance: no task numbers, no checklist order, no "which task says X verbatim." + +**Rationale:** Agents default to literal matching when told to map questions to task lines. Positive framing ("test scope, approach, dependencies") plus explicit bans reduces bad questions. + +**Example good task question:** "What is the primary integration point for recording comprehension passes?" (answer from task substance) + +**Example bad task question:** "Which task number updates `comprehension-guidance.ts`?" or "What is the exact text of task 2.1?" + +### 4. Proposal and design as peer sources + +**Choice:** Read `contextFiles.proposal` and `contextFiles.design` alongside specs/tasks. Design contributes both questions and distractors. + +**Rationale:** Proposal "Why/What Changes" and design "Decisions" are the highest-signal content for pre-implementation understanding. + +### 5. Update blocked instruction string + +**Choice:** Change apply blocked message from "specs and tasks" to "change artifacts" or enumerate proposal, design, specs, and tasks. + +**Rationale:** Instruction text should match actual quiz scope (`src/commands/workflow/instructions.ts` line ~449). + +## Risks / Trade-offs + +- **[Risk] Agents still write trivia questions** → Mitigation: explicit forbidden patterns and good/bad examples in guidance; docs reinforce the rule +- **[Risk] Small changes with thin proposal/design get forced questions** → Mitigation: minimum-one-per-category only when the artifact exists *and* has substantive content; skip empty sections +- **[Risk] Regenerated skill files out of sync** → Mitigation: tasks include running template generation / `openspec update` for affected tools + +## Migration Plan + +1. Update `comprehension-guidance.ts` with new read list, coverage rules, and task question framing +2. Update apply blocked instruction text in `instructions.ts` +3. Regenerate or manually sync apply skill/command files from templates +4. Update `docs/workflows.md`, `docs/customization.md`, `docs/agent-contract.md` + +No user migration required; behavior change is agent-guidance only. + +## Open Questions + +- None — scope is guidance-only with no new config surface. diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/proposal.md b/openspec/changes/include-questions-about-tasks-in-comprehension-check/proposal.md new file mode 100644 index 0000000000..a80a4074d6 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/proposal.md @@ -0,0 +1,30 @@ +## Why + +The apply comprehension quiz already covers delta specs and pending tasks, but agents often treat task questions as checklist trivia (task order, numbering, or verbatim checkbox text) instead of verifying they understand the change holistically. Proposal motivation and design decisions are barely tested—`design.md` is read only for distractors—so an agent can pass without grasping why the change exists or how it should be built. + +## What Changes + +- Expand comprehension quiz sources to include `proposal.md` and `design.md` as first-class question material (not distractors-only for design) +- Reframe task-based questions to test conceptual understanding of the implementation plan: scope, approach, dependencies, and alignment with proposal/design—never task numbers, checklist order, or "which task says X verbatim" +- Require balanced coverage across available artifacts when present: at least one question each from proposal, design, specs/scenarios, and pending tasks (when each exists) +- Update shared apply guidance template (`comprehension-guidance.ts`) and regenerated apply skill/command files +- Align user-facing docs (`workflows.md`, `customization.md`, `agent-contract.md`) with the broader quiz scope + +## Capabilities + +### New Capabilities + + + +### Modified Capabilities + +- `cli-artifact-workflow`: Apply comprehension quiz agent guidance covers proposal, design, specs, and conceptual task understanding (not task numbering) +- `docs-agent-instructions`: Document the expanded quiz scope and question-quality rules in agent-facing workflow docs + +## Impact + +- `src/core/templates/workflows/comprehension-guidance.ts` — primary quiz generation rules +- `src/core/templates/workflows/apply-change.ts` — consumes shared guidance (regenerate via `openspec update` or equivalent) +- `.cursor/skills/openspec-apply-change/SKILL.md`, `.cursor/commands/opsx-apply.md`, and Windsurf mirrors +- `docs/workflows.md`, `docs/customization.md`, `docs/agent-contract.md` +- `src/commands/workflow/instructions.ts` — blocked-state instruction text may mention proposal/design coverage diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/cli-artifact-workflow/spec.md b/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/cli-artifact-workflow/spec.md new file mode 100644 index 0000000000..2ba2681359 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/cli-artifact-workflow/spec.md @@ -0,0 +1,34 @@ +## ADDED Requirements + +### Requirement: Apply comprehension quiz artifact coverage + +When comprehension is enabled, apply workflow guidance SHALL instruct agents to generate quiz questions from proposal, design, delta specs, and pending tasks—each artifact type treated as a first-class question source when the file exists and has content. + +#### Scenario: Proposal and design included as question sources + +- **WHEN** apply comprehension guidance is generated for a change with `proposal.md`, `design.md`, delta specs, and pending tasks +- **THEN** the guidance instructs agents to read `contextFiles.proposal`, `contextFiles.design`, `contextFiles.specs`, and `contextFiles.tasks` +- **AND** instructs agents to draw questions from proposal motivation/scope, design decisions, requirements/scenarios, and pending task substance +- **AND** does not limit `design.md` to distractor-only use + +#### Scenario: Balanced coverage when multiple artifacts exist + +- **WHEN** proposal, design, delta specs with requirements, and pending tasks all exist for a change +- **THEN** apply comprehension guidance instructs agents to include at least one question sourced from each available category (proposal, design, specs/scenarios, pending tasks) +- **AND** remaining questions MAY draw from any category in proportion to change size + +### Requirement: Apply comprehension quiz conceptual task questions + +Apply workflow guidance SHALL require task-based comprehension questions to test general understanding of the implementation plan—not task numbering, checklist order, or verbatim checkbox text. + +#### Scenario: Task questions test implementation understanding + +- **WHEN** apply comprehension guidance instructs agents to create task-based questions +- **THEN** questions SHALL assess scope, approach, dependencies, sequencing rationale, or alignment with proposal/design +- **AND** correct answers SHALL be inferable from artifact substance without naming task numbers or matching exact checkbox labels + +#### Scenario: Task numbering questions prohibited + +- **WHEN** apply comprehension guidance describes forbidden question patterns +- **THEN** it SHALL prohibit questions about task numbers, checklist order, or verbatim reproduction of a single task line +- **AND** it SHALL prohibit questions whose correct answer is identifiable only by task index or checkbox position diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/docs-agent-instructions/spec.md b/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/docs-agent-instructions/spec.md new file mode 100644 index 0000000000..7569394d11 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/specs/docs-agent-instructions/spec.md @@ -0,0 +1,17 @@ +## ADDED Requirements + +### Requirement: Apply comprehension quiz documentation + +Agent-facing workflow documentation SHALL describe the apply comprehension quiz scope and question-quality rules so agents test holistic change understanding before implementation. + +#### Scenario: Document multi-artifact quiz sources + +- **WHEN** workflow or customization docs describe the apply comprehension quiz +- **THEN** they SHALL state that questions cover proposal, design, delta specs, and pending tasks when those artifacts exist +- **AND** they SHALL explain that design and proposal are question sources, not distractor-only inputs + +#### Scenario: Document conceptual task question rules + +- **WHEN** workflow or customization docs describe task-based quiz questions +- **THEN** they SHALL state that questions test general understanding of the implementation plan +- **AND** they SHALL state that questions MUST NOT ask about task numbers, checklist order, or verbatim task checkbox text diff --git a/openspec/changes/include-questions-about-tasks-in-comprehension-check/tasks.md b/openspec/changes/include-questions-about-tasks-in-comprehension-check/tasks.md new file mode 100644 index 0000000000..b741d984c4 --- /dev/null +++ b/openspec/changes/include-questions-about-tasks-in-comprehension-check/tasks.md @@ -0,0 +1,28 @@ +## 1. Comprehension guidance template + +- [x] 1.1 Update `src/core/templates/workflows/comprehension-guidance.ts` to read `contextFiles.proposal`, `contextFiles.design`, `contextFiles.specs`, and `contextFiles.tasks` as question sources +- [x] 1.2 Add minimum-one-per-category coverage when proposal, design, specs, and pending tasks all exist +- [x] 1.3 Reframe task questions to test scope, approach, dependencies, and alignment—not task numbers, order, or verbatim checkbox text +- [x] 1.4 Add explicit forbidden question patterns and good/bad examples to the guidance +- [x] 1.5 Update comprehension quiz output template to mention proposal/design coverage + +## 2. Apply instructions text + +- [x] 2.1 Update blocked-state instruction in `src/commands/workflow/instructions.ts` to reference proposal, design, specs, and tasks (not "specs and tasks" only) + +## 3. Regenerate apply skill and commands + +- [x] 3.1 Regenerate or sync `.cursor/skills/openspec-apply-change/SKILL.md` from apply-change template +- [x] 3.2 Regenerate or sync `.cursor/commands/opsx-apply.md` from apply-change template +- [x] 3.3 Regenerate or sync `.windsurf/skills/openspec-apply-change/SKILL.md` and `.windsurf/workflows/opsx-apply.md` + +## 4. Documentation + +- [x] 4.1 Update `docs/workflows.md` comprehension quiz section for multi-artifact scope and conceptual task questions +- [x] 4.2 Update `docs/customization.md` comprehension quiz description +- [x] 4.3 Update `docs/agent-contract.md` if apply instruction wording references quiz scope + +## 5. Verification + +- [x] 5.1 Run `openspec validate --change include-questions-about-tasks-in-comprehension-check` +- [x] 5.2 Confirm generated apply files contain updated comprehension guidance (grep for proposal/design coverage and task-number prohibition) diff --git a/openspec/explorations/workspace-architecture.md b/openspec/explorations/workspace-architecture.md index 0feffb231c..5b4341e19d 100644 --- a/openspec/explorations/workspace-architecture.md +++ b/openspec/explorations/workspace-architecture.md @@ -647,7 +647,7 @@ To avoid losing this in exploration notes, codify it in: ## Part 10: Design Decisions (April 2026) -After evaluating the models above against real multi-repo use cases (see [#725](https://github.com/Fission-AI/OpenSpec/issues/725)), we converged on the following design direction. +After evaluating the models above against real multi-repo use cases (see [#725](https://github.com/codewalla-engineering/OpenSpec/issues/725)), we converged on the following design direction. ### Core Insight diff --git a/openspec/explorations/workspace-user-journeys.md b/openspec/explorations/workspace-user-journeys.md index 14709fa5c5..e78323a626 100644 --- a/openspec/explorations/workspace-user-journeys.md +++ b/openspec/explorations/workspace-user-journeys.md @@ -324,12 +324,12 @@ For multi-repo work, durable identifiers should not be raw paths. Stable project identifiers should look like: -- `github.com/Fission-AI/web-client` -- `github.com/Fission-AI/contracts` +- `github.com/codewalla-engineering/web-client` +- `github.com/codewalla-engineering/contracts` User shorthand may be accepted: -- `Fission-AI/web-client` +- `codewalla-engineering/web-client` - `fission/web-client` OpenSpec resolves these to local paths using this order: @@ -1152,10 +1152,10 @@ OpenSpec interrupts the default single-repo flow and says: ```text This work spans multiple owning roots: -- github.com/Fission-AI/contracts -- github.com/Fission-AI/billing-service -- github.com/Fission-AI/web-client -- github.com/Fission-AI/ios-client +- github.com/codewalla-engineering/contracts +- github.com/codewalla-engineering/billing-service +- github.com/codewalla-engineering/web-client +- github.com/codewalla-engineering/ios-client For cross-repo work, OpenSpec recommends creating a coordination workspace. @@ -1194,10 +1194,10 @@ OpenSpec writes: OpenSpec now resolves local paths for: -- `github.com/Fission-AI/contracts` -- `github.com/Fission-AI/billing-service` -- `github.com/Fission-AI/web-client` -- `github.com/Fission-AI/ios-client` +- `github.com/codewalla-engineering/contracts` +- `github.com/codewalla-engineering/billing-service` +- `github.com/codewalla-engineering/web-client` +- `github.com/codewalla-engineering/ios-client` Using: @@ -1302,10 +1302,10 @@ Which repos or scopes are involved? The user enters: -- `github.com/Fission-AI/contracts` -- `github.com/Fission-AI/billing-service` -- `github.com/Fission-AI/web-client` -- `github.com/Fission-AI/ios-client` +- `github.com/codewalla-engineering/contracts` +- `github.com/codewalla-engineering/billing-service` +- `github.com/codewalla-engineering/web-client` +- `github.com/codewalla-engineering/ios-client` OpenSpec resolves local clones and writes the workspace files. @@ -1367,7 +1367,7 @@ They create or choose a shared coordination repo, for example: Or a team-owned repo such as: ```text -github.com/Fission-AI/initiatives +github.com/codewalla-engineering/initiatives ``` Inside it, OpenSpec creates: @@ -1399,8 +1399,8 @@ The team commits: Each teammate keeps local path mappings outside the shared repo, for example in OpenSpec local config/data: -- `github.com/Fission-AI/contracts` -> `/Users/alice/src/contracts` -- `github.com/Fission-AI/contracts` -> `/home/bob/work/contracts` +- `github.com/codewalla-engineering/contracts` -> `/Users/alice/src/contracts` +- `github.com/codewalla-engineering/contracts` -> `/home/bob/work/contracts` ### Teammate workflow @@ -1546,15 +1546,15 @@ The coordination workspace may contain unresolved links such as: ```yaml projects: - - id: github.com/Fission-AI/contracts + - id: github.com/codewalla-engineering/contracts path: /Users/me/work/contracts status: resolved - - id: github.com/Fission-AI/billing-service + - id: github.com/codewalla-engineering/billing-service status: unresolved - - id: github.com/Fission-AI/web-client + - id: github.com/codewalla-engineering/web-client path: /Users/me/work/web-client status: resolved - - id: github.com/Fission-AI/ios-client + - id: github.com/codewalla-engineering/ios-client status: unresolved ``` @@ -1619,8 +1619,8 @@ References should appear like: ```text Related references: -- github.com/Fission-AI/contracts: openspec/specs/checkout/spec.md -- github.com/Fission-AI/web-client: openspec/specs/checkout/web/spec.md +- github.com/codewalla-engineering/contracts: openspec/specs/checkout/spec.md +- github.com/codewalla-engineering/web-client: openspec/specs/checkout/web/spec.md ``` The agent can use them as navigation hints. @@ -2005,8 +2005,8 @@ Resolved roots: - /Users/me/work/web-client Unresolved roots: -- github.com/Fission-AI/billing-service -- github.com/Fission-AI/ios-client +- github.com/codewalla-engineering/billing-service +- github.com/codewalla-engineering/ios-client Ownership: - contracts owns shared checkout contract diff --git a/package-lock.json b/package-lock.json index 233b3f1db0..7128f86b0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@fission-ai/openspec", + "name": "@codewalla_india/openspec", "version": "1.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@fission-ai/openspec", + "name": "@codewalla_india/openspec", "version": "1.4.1", "hasInstallScript": true, "license": "MIT", diff --git a/package.json b/package.json index f1b61ebb86..9e740c073a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@fission-ai/openspec", - "version": "1.4.1", + "name": "@codewalla_india/openspec", + "version": "1.0.03", "description": "AI-native system for spec-driven development", "keywords": [ "openspec", @@ -9,10 +9,10 @@ "ai", "development" ], - "homepage": "https://github.com/Fission-AI/OpenSpec", + "homepage": "https://github.com/codewalla-engineering/OpenSpec", "repository": { "type": "git", - "url": "https://github.com/Fission-AI/OpenSpec" + "url": "https://github.com/codewalla-engineering/OpenSpec" }, "license": "MIT", "author": "OpenSpec Contributors", diff --git a/scripts/pack-version-check.mjs b/scripts/pack-version-check.mjs index 43cf8050eb..747887465f 100644 --- a/scripts/pack-version-check.mjs +++ b/scripts/pack-version-check.mjs @@ -53,7 +53,7 @@ function main() { let tgzPath; try { - log(`Packing @fission-ai/openspec@${expected}...`); + log(`Packing @codewalla_india/openspec@${expected}...`); const filename = npmPack(); tgzPath = path.resolve(filename); log(`Created: ${tgzPath}`); @@ -80,7 +80,7 @@ function main() { run('npm', ['install', tgzPath, '--silent', '--no-audit', '--no-fund'], { cwd: work, env }); // Run the installed CLI via Node to avoid bin resolution/platform issues - const binRel = path.join('node_modules', '@fission-ai', 'openspec', 'bin', 'openspec.js'); + const binRel = path.join('node_modules', '@codewalla_india', 'openspec', 'bin', 'openspec.js'); const actual = run(process.execPath, [binRel, '--version'], { cwd: work }).trim(); if (actual !== expected) { diff --git a/src/commands/feedback.ts b/src/commands/feedback.ts index e157d11e18..2627218642 100644 --- a/src/commands/feedback.ts +++ b/src/commands/feedback.ts @@ -98,7 +98,7 @@ function formatBody(bodyText?: string): string { * Generate a pre-filled GitHub issue URL for manual submission */ function generateManualSubmissionUrl(title: string, body: string): string { - const repo = 'Fission-AI/OpenSpec'; + const repo = 'codewalla-engineering/OpenSpec'; const encodedTitle = encodeURIComponent(title); const encodedBody = encodeURIComponent(body); const encodedLabels = encodeURIComponent('feedback'); @@ -130,7 +130,7 @@ function submitViaGhCli(title: string, body: string): void { 'issue', 'create', '--repo', - 'Fission-AI/OpenSpec', + 'codewalla-engineering/OpenSpec', '--title', title, '--body', diff --git a/src/commands/workflow/instructions.ts b/src/commands/workflow/instructions.ts index e464beccbf..e4aadff8e6 100644 --- a/src/commands/workflow/instructions.ts +++ b/src/commands/workflow/instructions.ts @@ -446,7 +446,7 @@ export async function generateApplyInstructions( state = 'blocked'; missingComprehension = true; comprehension = gate.info; - instruction = `Complete the comprehension quiz in /opsx:apply before implementation (score ≥ ${gate.info.thresholdPercent}% on specs and tasks).`; + instruction = `Complete the comprehension quiz in /opsx:apply before implementation (score ≥ ${gate.info.thresholdPercent}% on proposal, design, specs, and tasks).`; } else if (gate.active && gate.info) { comprehension = gate.info; } diff --git a/src/core/init.ts b/src/core/init.ts index 7f5149dd46..e523fa6f79 100644 --- a/src/core/init.ts +++ b/src/core/init.ts @@ -738,8 +738,8 @@ export class InitCommand { // Links console.log(); - console.log(`Learn more: ${chalk.cyan('https://github.com/Fission-AI/OpenSpec')}`); - console.log(`Feedback: ${chalk.cyan('https://github.com/Fission-AI/OpenSpec/issues')}`); + console.log(`Learn more: ${chalk.cyan('https://github.com/codewalla-engineering/OpenSpec')}`); + console.log(`Feedback: ${chalk.cyan('https://github.com/codewalla-engineering/OpenSpec/issues')}`); // Restart instruction if any tools were configured if (results.createdTools.length > 0 || results.refreshedTools.length > 0) { diff --git a/src/core/templates/workflows/comprehension-guidance.ts b/src/core/templates/workflows/comprehension-guidance.ts index 3051a9a444..aefa7bfc2b 100644 --- a/src/core/templates/workflows/comprehension-guidance.ts +++ b/src/core/templates/workflows/comprehension-guidance.ts @@ -11,17 +11,25 @@ export const COMPREHENSION_QUIZ_GUIDANCE = `4. **Comprehension quiz (required be - If \`missingComprehension\` is true OR \`comprehension.required && !comprehension.passed\`: - Do NOT edit application source code or mark task checkboxes yet - - Read \`contextFiles.specs\`, \`contextFiles.tasks\` (or the \`tasks\` array in apply JSON), and \`contextFiles.design\` (design for distractors only) + - Read \`contextFiles.proposal\`, \`contextFiles.design\`, \`contextFiles.specs\`, and \`contextFiles.tasks\` (or the \`tasks\` array in apply JSON) - Use \`comprehension.questionCount\` from the JSON as the number of questions **Generate questions** - Create exactly \`comprehension.questionCount\` multiple-choice questions - - Each question MUST map to one of: - - a \`### Requirement:\` or \`#### Scenario:\` from delta specs, OR - - a pending (unchecked) task from \`tasks.md\` / the apply \`tasks\` array - - When both specs and pending tasks exist, include at least 2 task-based questions and cover the rest from specs/scenarios + - Each question MUST map to one artifact category: + - **Proposal**: motivation, scope, or impact from \`proposal.md\` + - **Design**: decisions, trade-offs, or approach from \`design.md\` + - **Specs**: a \`### Requirement:\` or \`#### Scenario:\` from delta specs + - **Tasks**: conceptual understanding of the implementation plan from pending (unchecked) tasks + - When proposal, design, specs (with requirements), and pending tasks all exist, include at least one question from each category; fill remaining slots from any category - Do NOT use completed tasks as question sources - - Each question: 4 options (1 correct from the source item, 3 plausible distractors from other requirements/scenarios/tasks in the change) + - Each question: 4 options (1 correct from the source substance, 3 plausible distractors from other proposal/design/requirements/scenarios/task substance in the change) + + **Task question quality** + - Test scope, approach, dependencies, sequencing rationale, or alignment with proposal/design + - **Forbidden**: task numbers, checklist order, "which task says X verbatim", or answers identifiable only by task index or checkbox position + - Good: "What is the primary file where quiz rules are centralized?" (answer from task substance) + - Bad: "Which task number updates \`comprehension-guidance.ts\`?" or "What is the exact text of task 2.1?" **Present and grade** - Use the **AskUserQuestion tool** for each question (one at a time) @@ -31,7 +39,7 @@ export const COMPREHENSION_QUIZ_GUIDANCE = `4. **Comprehension quiz (required be **On failure (score below threshold)** - Announce score and that a new quiz is required - Update \`.comprehension-session.yaml\` in the change dir with \`used_sources\` from this attempt - - Generate a NEW question set using different requirement/scenario/task sources (avoid \`used_sources\`) + - Generate a NEW question set using different proposal/design/requirement/scenario/task sources (avoid \`used_sources\`) - Retry until pass **On pass** @@ -45,7 +53,7 @@ export const COMPREHENSION_QUIZ_GUIDANCE = `4. **Comprehension quiz (required be \`\`\` ## Applying: — comprehension check - Specs: requirements, scenarios; Tasks: pending → questions + Proposal, design, specs ( requirements, scenarios), tasks ( pending) → questions Question 1/N: ... ... diff --git a/src/core/update.ts b/src/core/update.ts index e1582cd5b1..b6d844419e 100644 --- a/src/core/update.ts +++ b/src/core/update.ts @@ -274,7 +274,7 @@ export class UpdateCommand { console.log(' /opsx:continue Create the next artifact'); console.log(' /opsx:apply Implement tasks'); console.log(); - console.log(`Learn more: ${chalk.cyan('https://github.com/Fission-AI/OpenSpec')}`); + console.log(`Learn more: ${chalk.cyan('https://github.com/codewalla-engineering/OpenSpec')}`); } const configuredAndNewTools = [...new Set([...configuredTools, ...newlyConfiguredTools])]; diff --git a/test/commands/feedback.test.ts b/test/commands/feedback.test.ts index 7a2125f16f..d4f0b97c18 100644 --- a/test/commands/feedback.test.ts +++ b/test/commands/feedback.test.ts @@ -46,7 +46,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/123\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/123\n'); await feedbackCommand.execute('Test'); @@ -72,7 +72,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/123\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/123\n'); await feedbackCommand.execute('Test'); @@ -110,7 +110,7 @@ describe('FeedbackCommand', () => { // Should show manual submission URL expect(consoleLogSpy).toHaveBeenCalledWith( - expect.stringContaining('https://github.com/Fission-AI/OpenSpec/issues/new') + expect.stringContaining('https://github.com/codewalla-engineering/OpenSpec/issues/new') ); }); @@ -151,7 +151,7 @@ describe('FeedbackCommand', () => { describe('successful feedback submission', () => { it('should submit feedback via gh CLI when authenticated', async () => { - const issueUrl = 'https://github.com/Fission-AI/OpenSpec/issues/123'; + const issueUrl = 'https://github.com/codewalla-engineering/OpenSpec/issues/123'; // Simulate gh installed and authenticated mockExecSync.mockImplementation((cmd: string, options?: any) => { @@ -175,7 +175,7 @@ describe('FeedbackCommand', () => { 'issue', 'create', '--repo', - 'Fission-AI/OpenSpec', + 'codewalla-engineering/OpenSpec', '--title', 'Feedback: Great tool!', '--body', @@ -201,7 +201,7 @@ describe('FeedbackCommand', () => { }); it('should include --body flag when body is provided', async () => { - const issueUrl = 'https://github.com/Fission-AI/OpenSpec/issues/124'; + const issueUrl = 'https://github.com/codewalla-engineering/OpenSpec/issues/124'; mockExecSync.mockImplementation((cmd: string, options?: any) => { if (cmd === 'which gh' || cmd === 'where gh') { @@ -239,7 +239,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/125\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/125\n'); await feedbackCommand.execute('Test message'); @@ -265,7 +265,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/126\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/126\n'); await feedbackCommand.execute('Test', { body: 'Body text' }); @@ -291,7 +291,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/127\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/127\n'); await feedbackCommand.execute('Test'); @@ -351,7 +351,7 @@ describe('FeedbackCommand', () => { return ''; }); - mockExecFileSync.mockReturnValue('https://github.com/Fission-AI/OpenSpec/issues/128\n'); + mockExecFileSync.mockReturnValue('https://github.com/codewalla-engineering/OpenSpec/issues/128\n'); await feedbackCommand.execute('Test with "quotes"', { body: 'Body with "quotes"', @@ -415,7 +415,7 @@ describe('FeedbackCommand', () => { // Verify URL is shown const urlCall = consoleLogSpy.mock.calls.find((call: any[]) => - call[0]?.includes('https://github.com/Fission-AI/OpenSpec/issues/new') + call[0]?.includes('https://github.com/codewalla-engineering/OpenSpec/issues/new') ); expect(urlCall).toBeDefined();