Contentful Custom App Enhancement
Use this skill to turn a bug report, support note, or feature request into a
small, reviewable improvement for an existing Contentful custom app.
Default to the user's app repository and workflow. Do not assume a specific
repository convention, publication process, or review policy unless the user
provides one.
When a comparable public Contentful Marketplace app or example in Contentful's
public apps repository (https://github.com/contentful/apps) exists, use it as
a best practice reference for App Framework patterns and UX polish without
inheriting its release or distribution workflow.
Inputs
Accept:
- bug reports,
- customer or editor feedback,
- support tickets or issue links,
- screenshots or screen recordings,
- direct requests to change a known custom app,
- partial notes about an App Framework behavior.
If the source material is incomplete, continue with local code and provided
context when the risk is low. Ask a targeted question when the missing answer
could change the user-facing behavior, data writes, authentication, or
deployment path.
Workflow
1. Build the Request Context
Identify:
- original request and affected users,
- current app behavior versus expected behavior,
- Contentful location and workflow affected,
- space, environment, content type, field, locale, and role assumptions,
- external service or credential dependencies,
- evidence available locally and evidence still missing.
Separate confirmed facts from assumptions.
2. Inspect the Existing App
Before editing:
- check repository status and avoid overwriting user changes,
- inspect
package.json, scripts, lockfile, and framework conventions,
- locate the relevant app locations and SDK usage,
- review existing tests and nearby components,
- identify app definition, installation parameters, and deployment notes if they
exist,
- confirm whether the app uses App SDK, React Apps Toolkit, Forma 36,
contentful-management, App Actions, Functions, or an external backend.
For a reusable checklist, use
Enhancement checklist.
3. Decide Whether the Change Is Small Enough
Proceed with implementation when the change can plausibly be:
- scoped to one app,
- explained in one short PR,
- validated locally or in a sandbox,
- reviewed without broad product redesign,
- implemented without risky migrations or secret-handling changes.
Pause and clarify when the request requires:
- production data changes,
- a new external auth model,
- major content model redesign,
- multi-app coordination,
- new backend infrastructure,
- unavailable Function or plan capabilities,
- ambiguous editor behavior.
4. Plan the Smallest Useful Change
Write a short plan before editing:
- files or app locations likely to change,
- data read/write behavior,
- UI and validation updates,
- tests or manual verification to run,
- risks and rollback path.
Prefer improving the existing flow over replacing it.
5. Implement in the App's Existing Style
- Reuse current framework, routing, hooks, components, and package manager.
- Keep TypeScript precise and avoid broad
any types.
- Use Forma 36 for Contentful web app UI unless the app already uses another
deliberate design system.
- Preserve editor trust: show loading, empty, error, permission, and destructive
action states when relevant.
- Keep configuration UI explicit about what values are stored at installation
versus instance scope.
- Treat non-secret parameters as readable by space members.
- When runtime locations need installation parameters, prefer
sdk.parameters.installation. Do not add or preserve CMA app-installation
reads in sidebar, field editor, entry editor, page, dialog, home, mount
effects, render paths, or click handlers just to retrieve app configuration.
- Do not expose tokens or private credentials in client code.
- Keep changes narrow; avoid unrelated formatting, dependency churn, or
refactors.
6. Validate the Improvement
Run the closest available validation:
- targeted unit or component tests,
- typecheck,
- lint or formatter check,
- production build,
- local dev server smoke test,
- Contentful web app manual flow in a non-production space,
- grep or ripgrep for
appInstallation.getForOrganization,
appInstallation.get, and getForOrganization when installation-parameter
access is touched, confirming runtime config reads use
sdk.parameters.installation or documenting why a CMA app-installation call
remains,
- App Action, Function, or backend endpoint test when the change touches
server-side behavior.
When validation requires credentials or access the agent does not have, explain
exactly what remains for the user to verify.
7. Prepare Reviewable Output
If the user wants a commit or PR:
- create a focused branch using the user's repo convention when known,
- keep commits small and conventional,
- do not stage unrelated local files,
- include request context, implementation summary, validation, and open
questions in the PR draft.
If the user only asked for the fix, end with:
- context,
- assessment,
- implementation summary,
- validation,
- remaining risks or follow-up.
Guardrails
- Do not force a code change when the better answer is product clarification.
- Do not overfit one vague report without saying what is uncertain.
- Do not widen the scope into a rewrite unless the user asks.
- Do not assume app users have publication or distribution requirements unless
they say so.
- Do not claim Contentful plan features, SDK behavior, or API limits from memory
when current official docs should be checked.
Related Skills
contentful-custom-app-from-scratch - design and build a new custom app.
contentful-api - concrete REST and GraphQL API examples.
contentful-migration - content model migration scripts.
contentful-guide - Contentful concepts and API routing.
1---2name: contentful-custom-app-enhancement3description: Improve, debug, and extend an existing Contentful App Framework custom app in a customer's own repository. Use when users provide a bug report, feature request, support note, customer feedback, or direct change request for an existing custom app, including app configuration, sidebar, field editor, dialog, page, home, App Action, Function, installation parameters, local validation, or PR preparation. Also triggers on "fix my Contentful app", "improve a custom app", "enhance App Framework app", "debug custom app", "update sidebar app", and "custom app feature request". Not for creating a brand new app from scratch (contentful-custom-app-from-scratch), generic API examples (contentful-api), migrations (contentful-migration), or website integration (contentful-nextjs).4license: MIT5---6
7# Contentful Custom App Enhancement
8
9Use this skill to turn a bug report, support note, or feature request into a
10small, reviewable improvement for an existing Contentful custom app.
11
12Default to the user's app repository and workflow. Do not assume a specific
13repository convention, publication process, or review policy unless the user
14provides one.
15
16When a comparable public Contentful Marketplace app or example in Contentful's
17public apps repository (`https://github.com/contentful/apps`) exists, use it as
18a best practice reference for App Framework patterns and UX polish without
19inheriting its release or distribution workflow.
20
21## Inputs
22
23Accept:
24
25- bug reports,
26- customer or editor feedback,
27- support tickets or issue links,
28- screenshots or screen recordings,
29- direct requests to change a known custom app,
30- partial notes about an App Framework behavior.
31
32If the source material is incomplete, continue with local code and provided
33context when the risk is low. Ask a targeted question when the missing answer
34could change the user-facing behavior, data writes, authentication, or
35deployment path.
36
37## Workflow
38
39### 1. Build the Request Context
40
41Identify:
42
43- original request and affected users,
44- current app behavior versus expected behavior,
45- Contentful location and workflow affected,
46- space, environment, content type, field, locale, and role assumptions,
47- external service or credential dependencies,
48- evidence available locally and evidence still missing.
49
50Separate confirmed facts from assumptions.
51
52### 2. Inspect the Existing App
53
54Before editing:
55
56- check repository status and avoid overwriting user changes,
57- inspect `package.json`, scripts, lockfile, and framework conventions,
58- locate the relevant app locations and SDK usage,
59- review existing tests and nearby components,
60- identify app definition, installation parameters, and deployment notes if they
61 exist,
62- confirm whether the app uses App SDK, React Apps Toolkit, Forma 36,
63 contentful-management, App Actions, Functions, or an external backend.
64
65For a reusable checklist, use
66[Enhancement checklist](references/enhancement-checklist.md).
67
68### 3. Decide Whether the Change Is Small Enough
69
70Proceed with implementation when the change can plausibly be:
71
72- scoped to one app,
73- explained in one short PR,
74- validated locally or in a sandbox,
75- reviewed without broad product redesign,
76- implemented without risky migrations or secret-handling changes.
77
78Pause and clarify when the request requires:
79
80- production data changes,
81- a new external auth model,
82- major content model redesign,
83- multi-app coordination,
84- new backend infrastructure,
85- unavailable Function or plan capabilities,
86- ambiguous editor behavior.
87
88### 4. Plan the Smallest Useful Change
89
90Write a short plan before editing:
91
92- files or app locations likely to change,
93- data read/write behavior,
94- UI and validation updates,
95- tests or manual verification to run,
96- risks and rollback path.
97
98Prefer improving the existing flow over replacing it.
99
100### 5. Implement in the App's Existing Style
101
102- Reuse current framework, routing, hooks, components, and package manager.
103- Keep TypeScript precise and avoid broad `any` types.
104- Use Forma 36 for Contentful web app UI unless the app already uses another
105 deliberate design system.
106- Preserve editor trust: show loading, empty, error, permission, and destructive
107 action states when relevant.
108- Keep configuration UI explicit about what values are stored at installation
109 versus instance scope.
110- Treat non-secret parameters as readable by space members.
111- When runtime locations need installation parameters, prefer
112 `sdk.parameters.installation`. Do not add or preserve CMA app-installation
113 reads in sidebar, field editor, entry editor, page, dialog, home, mount
114 effects, render paths, or click handlers just to retrieve app configuration.
115- Do not expose tokens or private credentials in client code.
116- Keep changes narrow; avoid unrelated formatting, dependency churn, or
117 refactors.
118
119### 6. Validate the Improvement
120
121Run the closest available validation:
122
123- targeted unit or component tests,
124- typecheck,
125- lint or formatter check,
126- production build,
127- local dev server smoke test,
128- Contentful web app manual flow in a non-production space,
129- grep or ripgrep for `appInstallation.getForOrganization`,
130 `appInstallation.get`, and `getForOrganization` when installation-parameter
131 access is touched, confirming runtime config reads use
132 `sdk.parameters.installation` or documenting why a CMA app-installation call
133 remains,
134- App Action, Function, or backend endpoint test when the change touches
135 server-side behavior.
136
137When validation requires credentials or access the agent does not have, explain
138exactly what remains for the user to verify.
139
140### 7. Prepare Reviewable Output
141
142If the user wants a commit or PR:
143
144- create a focused branch using the user's repo convention when known,
145- keep commits small and conventional,
146- do not stage unrelated local files,
147- include request context, implementation summary, validation, and open
148 questions in the PR draft.
149
150If the user only asked for the fix, end with:
151
152- context,
153- assessment,
154- implementation summary,
155- validation,
156- remaining risks or follow-up.
157
158## Guardrails
159
160- Do not force a code change when the better answer is product clarification.
161- Do not overfit one vague report without saying what is uncertain.
162- Do not widen the scope into a rewrite unless the user asks.
163- Do not assume app users have publication or distribution requirements unless
164 they say so.
165- Do not claim Contentful plan features, SDK behavior, or API limits from memory
166 when current official docs should be checked.
167
168## Related Skills
169
170- `contentful-custom-app-from-scratch` - design and build a new custom app.
171- `contentful-api` - concrete REST and GraphQL API examples.
172- `contentful-migration` - content model migration scripts.
173- `contentful-guide` - Contentful concepts and API routing.