Skip to content

docs(apps): update AppKit scaffolding setup for Manifest 2.0#79

Draft
atilafassina wants to merge 1 commit into
mainfrom
appkit-manifest-2.0
Draft

docs(apps): update AppKit scaffolding setup for Manifest 2.0#79
atilafassina wants to merge 1 commit into
mainfrom
appkit-manifest-2.0

Conversation

@atilafassina
Copy link
Copy Markdown
Contributor

Summary

Updates skills/databricks-apps/SKILL.md to consume the scaffolding.rules
blocks introduced in AppKit Manifest 2.0 (databricks-eng/appkit#261).
The schema now emits must / should / never arrays at both the
template level and per-plugin level via databricks apps manifest.

Adds a new "Scaffolding Rules Protocol" subsection covering how the
skill should:

  • Gather rules across selected plugins + template into one working set
  • Treat manifest rules as authoritative over baked-in skill directives
  • Honour Before init / After init phase prefixes for ordering
  • Stop and ask the user when a plugin must conflicts with a template
    never (or vice versa)
  • Report the merged guardrail set to the user before scaffolding

Until this merges, the new rules are advisory metadata in the manifest:
present but unused at scaffold time. Failure mode is degraded (plugin
guardrails don't fire), not broken.

Test plan

  • python3 scripts/skills.py validate passes (CI)
  • Reviewer checks the new section for voice consistency with the rest of SKILL.md

@atilafassina atilafassina requested a review from MarioCadenas May 18, 2026 19:21
atilafassina added a commit to databricks/appkit that referenced this pull request May 19, 2026
…tion

The original three never entries surfaced false-positive conflicts with
plugin setup instructions during integration testing against the
databricks-apps skill (Track B PR databricks/databricks-agent-skills#79):

- 'Modify files inside the template directory' caught every plugin must
  rule that edits scaffolded files (genie spaces config, lakebase
  migrations, analytics queries). The rule was either unreachable (if
  read as the SDK source-of-truth) or contradictory (if read as the
  scaffolded output, which the user owns post-init). Deleted.
- 'Hardcode workspace-specific values in template files' conflated
  workspace IDs (which are correctly committed to bundle config) with
  credentials (which must not be). Replaced with a must/never pair that
  names the legitimate destinations (app.yaml, databricks.yml, .env)
  and the leak path (client bundle).
- 'Skip resource configuration prompts' conflicted with the --set
  non-interactive path. Replaced with a should/never pair covering the
  actual decision-time failures: ask the user when uncertain; never
  guess when discovery returns zero or multiple options.

Net: 0 must + 0 should + 3 never -> 1 must + 1 should + 2 never. All
entries describe agent behaviors at decision points (substitutability
gate passes), each under 120 chars, and the merged set is precedence-
and phase-clean per the skill PR's protocol.

Regression test in validate-manifest.test.ts updated to pin the new
contents.

Co-authored-by: Isaac
Signed-off-by: Atila Fassina <atila@fassina.eu>
Adds the Scaffolding Rules Protocol to skills/databricks-apps/SKILL.md
— instructions for reading and applying plugin-level + template-level
scaffolding.rules (must / should / never) emitted by `databricks apps
manifest`. Covers: gathering rules from selected plugins + template,
precedence over baked-in directives, Before init / After init phase
ordering, conflict detection (plugin must vs template never), and
reporting the merged guardrail set before scaffolding.

This is Track B of the AppKit plugin-manifest-refactor v2.0. Track A
(schema cutover, postScaffold deletion, plugin migrations) is already
shipped on the AppKit side; Track B is advisory until this lands.

xavier loop iteration 5 (Phase 5 of plugin-manifest-refactor task).

Co-authored-by: Isaac
@atilafassina atilafassina force-pushed the appkit-manifest-2.0 branch from 816998a to 184324b Compare May 20, 2026 09:00
Copy link
Copy Markdown
Member

@pkosiec pkosiec left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to 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.

3 participants