Add nextcloud-php-app skill: from an empty directory to a released Nextcloud PHP app - #5
Merged
Merged
Conversation
… UI tests Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…fication after agent testing Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…igration ledger Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
… same template and browser tests Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
… app Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
… findings into the php-app skill Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…d it in CI Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
oleksandr-nc
force-pushed
the
feat/php-app-skill
branch
from
August 18, 2026 09:42
ed8f724 to
9ab0b18
Compare
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…ent what the third agent round found Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…, second users and the Vue-first path Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
…ardening, 63-char names, NC33 OCP surface, stale claims Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
oleksandr-nc
marked this pull request as ready for review
August 18, 2026 10:43
…process narrative from the runbooks Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A complete guide to building Nextcloud PHP apps, from an empty directory to a release tarball, with a runnable reference app and browser verification. Everything in it was executed against live Nextcloud 33, 34 and 35 instances, and then tested by four fresh agents who had only the guide: the last two built complete apps (a reading list, a team standup log) in 11 and 12 minutes each, all requirements green, and their findings are folded back in.
What is here
skills/nextcloud-php-app/: a seven-stage runbook (scaffold, browser, data, settings, Vue + Vite, PHPUnit + Psalm + php-cs-fixer, package and release) and a Playwright runbook.assets/minimal_php_app/: an installable app that carries every stage: manifest,IBootstrap, attribute routes, template plus page script, navigation, migration + entity +QBMapper, admin settings with a full round trip (initial state out, admin-onlyPUTback), a plain-JavaScript frontend that works without any build and a Vue frontend behind the same template and the same tests, two PHPUnit suites (mocked controllers; real-database mapper), Psalm and php-cs-fixer configuration, a 7-test Playwright suite that passes against both frontends and on all three Nextcloud versions, andmake appstore.rename.sh: turns a copy into your own app, validates its inputs first and refuses to finish unless the result is clean.tests/verify.pygained a slow check that installs the reference app and asserts what the runbook promises; CI gained a job that renames, schema-checks, builds, unit-tests, analyses and packages the reference app on every push.What the agent rounds and the review changed
Rounds 1 and 2 (earlier): migrations run on re-enable, not on version bump; the migration ledger; the rename script instead of a prose recipe.
Rounds 3 and 4: the reference migration runs on the very first enable, so decide the first table before enabling; a
NOT NULLcolumn with empty default cannot be added to an existing table; the settings stage now consumes the initial state it provides; two Vite entries;NcCheckboxRadioSwitchswallows role clicks; unique indexes andREASON_UNIQUE_CONSTRAINT_VIOLATION; second users need a policy-compliant password; the Vue-first order is explicitly fine.Multi-version testing: Nextcloud 33 renders the app menu inline (links), 34+ as a popover (
menuitem); the first-run wizard modal intercepts clicks on fresh instances; both handled in the reference suite.An adversarial review pass found no blockers and 31 corrections, all applied: the identifier limit is 63 not 30,
rename.shnow survives&,|,\and names containing "minimal", validates the namespace, and never edits itself;nextcloud/ocpis pinned to the lowest supported branch; migration ordering, themigrations:executeguard caveat and several attributions were corrected.Two apps built by the agent rounds are left installed on the dev instance (
readinglist,standupnotes) for anyone who wants to look; the reports are in/workspace/notes/nextcloud-skills/.