Skip to content

feat(version): include the app's agent skills in a version - #698

Open
yurynix wants to merge 1 commit into
mainfrom
feat/version-agent-skills
Open

yurynix wants to merge 1 commit into
mainfrom
feat/version-agent-skills

Conversation

@yurynix

@yurynix yurynix commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Note

Description

Agent skills are part of what an app declares, but they were absent from the version payload — a published version could not reproduce the skills the build had. This PR collects each agent-skills/<name>.md as text and sends it in the agent_skills field when declaring a version, alongside the existing entities, agents and mcp_config payloads. Like the MCP config, the files go up unparsed so the platform's reader stays authoritative, and the field is always sent ({} when the app has none) so an absent field keeps meaning "this producer does not describe skills".

Related Issue

None

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Other (please describe):

Changes Made

  • core/version/artifacts.ts — new readAgentSkillFiles() reads the skills directory's own *.md files (no recursion, no symlink following, sorted for stable order) and returns them keyed by skill name with the .md stripped; collectResources() now gathers them in parallel with the entities, agents and MCP config.
  • core/version/schema.ts — ArtifactSet gains agentSkills: Record<string, string>.
  • core/version/api.ts — createVersion() sends agent_skills in the declare request.
  • core/project/target.ts — BuildTarget gains agentSkillsDir, defaulting to agent-skills and overridable via the project config's existing agentSkillsDir field.
  • core/resources/agent-skill/schema.ts — raised the skill body limit from 15,000 to 50,000 characters.
  • docs/versions.md — documented agent_skills in the declare step and added a section on how skill files are collected; added the keyword.
  • Tests — collectResources sends each skill file as written and ignores non-.md files and nested directories; an app with no skills declares agentSkills: {}; publish declares agent_skills: {} for a skill-less app; build-target fixtures updated for the new field.

Testing

  • I have tested these changes locally
  • I have added/updated tests as needed
  • All tests pass (npm test)

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (if applicable)
  • My changes generate no new warnings
  • I have updated docs/ (AGENTS.md) if I made architectural changes

Additional Notes

The new payload field rides the same BASE44_VERSIONS_API gate as the rest of the versions lane. The body-limit bump to 50,000 characters in AgentSkillSchema is a separate loosening that rides along in this change — worth a second look if the platform enforces its own limit.


🤖 Generated by Claude | 2026-11-10 15:55 UTC | d34e4f4

A version now declares each agent-skills/<name>.md as written, keyed by
skill name, and {} when the app has none; only the folder's own *.md files
are skills. The skill body limit goes from 15,000 to 50,000 characters, the
limit the platform already applies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Package Preview Available!


Install this PR's preview build with npm:

npm i @base44-preview/cli@0.3.2-pr.698.ea0a371

Prefer not to change any import paths? Install using npm alias so your code still imports base44:

npm i "base44@npm:@base44-preview/cli@0.3.2-pr.698.ea0a371"

Or add it to your package.json dependencies:

{
  "dependencies": {
    "base44": "npm:@base44-preview/cli@0.3.2-pr.698.ea0a371"
  }
}

Preview published to npm registry — try new features instantly!

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.

1 participant