Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Improved agent readiness and added openspec skills by PrakharJainS3 · Pull Request #2023 · acquia/cli · GitHub
Skip to content

Improved agent readiness and added openspec skills - #2023

Open
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness
Open

Improved agent readiness and added openspec skills#2023
PrakharJainS3 wants to merge 1 commit into
acquia:mainfrom
PrakharJainS3:agent-readiness

Conversation

@PrakharJainS3

Copy link
Copy Markdown
Contributor

Motivation

Fixes #NNN

Proposed changes

Alternatives considered

Testing steps

  1. Follow the contribution guide to set up your development environment or download a pre-built acli.phar for this PR.
  2. If running from source, clear the kernel cache to pick up new and changed commands: ./bin/acli ckc
  3. Check for regressions: (add specific steps for this pr)
  4. Check new functionality: (add specific steps for this pr)

CopilotAI review requested due to automatic review settings July 16, 2026 06:26
@github-actions

Copy link
Copy Markdown
Contributor

Try the dev build for this PR: https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar

curl -OL https://acquia-cli.s3.amazonaws.com/build/pr/2023/acli.phar
chmod +x acli.phar

@codecov

codecovBot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.49%. Comparing base (0d9c5db) to head (a2752de).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #2023 +/- ##
=========================================
Coverage 92.49% 92.49% Complexity 1991 1991 =========================================
Files 123 123 Lines 7232 7232 =========================================
Hits 6689 6689 Misses 543 543 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces OpenSpec workflow support and agent-focused contributor guidance, along with minor developer-experience improvements to static analysis defaults and contributor documentation.

Changes:

  • Add OpenSpec configuration plus a set of /opsx:* workflow command docs and corresponding OpenSpec “skills”.
  • Add an AGENTS.md entry point describing agent workflow, worktree usage, and PHPStan baseline policy.
  • Improve developer tooling/docs: run PHPStan via GrumPHP pre-commit and increase PHPStan memory limits; document integration test execution and common local dev issues.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 10 comments.

Show a summary per file
FileDescription
openspec/config.yamlAdds baseline OpenSpec schema configuration for spec-driven workflow.
grumphp.ymlAdds PHPStan task to pre-commit checks with a 1G memory limit.
CONTRIBUTING.mdDocuments running integration tests and common local dev issues (coverage/pcov, phpcs vendor deps, Xdebug).
composer.jsonRaises default PHPStan memory limit for the composer stan script.
AGENTS.mdNew agent/contributor workflow guide (branching/worktrees, gate commands, PHPStan baseline policy).
.claude/skills/openspec-update-change/SKILL.mdAdds “update change artifacts” OpenSpec skill documentation.
.claude/skills/openspec-sync-specs/SKILL.mdAdds “sync delta specs into main specs” OpenSpec skill documentation.
.claude/skills/openspec-propose/SKILL.mdAdds “propose a change and generate artifacts” OpenSpec skill documentation.
.claude/skills/openspec-explore/SKILL.mdAdds “explore mode” OpenSpec skill documentation.
.claude/skills/openspec-archive-change/SKILL.mdAdds “archive a change” OpenSpec skill documentation.
.claude/skills/openspec-apply-change/SKILL.mdAdds “apply/implement a change” OpenSpec skill documentation.
.claude/commands/opsx/update.mdAdds /opsx:update command documentation.
.claude/commands/opsx/sync.mdAdds /opsx:sync command documentation.
.claude/commands/opsx/propose.mdAdds /opsx:propose command documentation.
.claude/commands/opsx/explore.mdAdds /opsx:explore command documentation.
.claude/commands/opsx/archive.mdAdds /opsx:archive command documentation.
.claude/commands/opsx/apply.mdAdds /opsx:apply command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadAGENTS.md

## Overview

Acquia CLI (`acli`) is a PHP 8.2+ Symfony Console application distributed as a PHAR. Commands talk to the Acquia Cloud Platform API and ACSF API. The test suite is fully local (no live API calls in unit tests — Prophecy mocks read from OpenAPI spec fixtures).
Comment threadAGENTS.md

# Work inside the worktree
cd .worktrees/CLI-123-my-feature
composer install # worktree has its own vendor/ symlink
Comment threadAGENTS.md
git worktree remove .worktrees/CLI-123-my-feature
```

`.worktrees/` is git-ignored — no accidental commits of worktree state.
Comment threadCONTRIBUTING.md
`test_01_auth_login_with_telemetry_disabled` is the only test that does not create, modify, or delete any cloud resource. It disables telemetry and verifies credential login. Run it alone with:

```bash
python3 -m unittest tests.integration.testcases.TestExecutableWithPrompt.test_01_auth_login_with_telemetry_disabled
Comment on lines +74 to +77
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```
Comment on lines +68 to +83
5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```
Comment on lines +53 to +55
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +57 to +59
- Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `/opsx:continue` to create them.
- If the change is already coherent, say so and make no edits.

Comment on lines +47 to +49
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
Comment on lines +51 to +53
**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change
- If `state: "all_done"`: congratulate, suggest archive
@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

@acquia-stalebot-platauto

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please remove the stale label to avoid it being closed. Thank you for your contributions. More info: https://github.com/acquia/devops-github-administration/blob/main/docs/operations_related_to_repositories.md#acquia-stale-bot

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PrakharJainS3