Skip to content

Transform to minimal ObjectStack plugin starter template#18

Merged
hotlong merged 4 commits intomainfrom
copilot/create-startup-project-template
Feb 2, 2026
Merged

Transform to minimal ObjectStack plugin starter template#18
hotlong merged 4 commits intomainfrom
copilot/create-startup-project-template

Conversation

Copy link
Contributor

Copilot AI commented Feb 2, 2026

Restructured repository from a complex monorepo with CRM examples to a focused plugin starter template aligned with ObjectStack v0.8.2 specification.

Changes

Structure

  • Removed monorepo (packages/core, packages/examples) → single package template
  • Deleted 48 files (4,276 lines) of CRM examples and documentation
  • Created 5 focused template files (284 lines)

Template Components

  • objectstack.config.ts - System.ObjectStackManifest plugin metadata
  • objects/example.object.ts - Data.ServiceObject with proper field schema
  • views/example.view.ts - UI.ListView (grid + kanban)
  • index.ts - Clean exports
  • example.ts - Usage demonstration

Dependencies & Tooling

  • Upgraded @objectstack/spec: 0.3.3 → 0.8.2
  • Switched pnpm → npm (removed workspace config)
  • Updated TypeScript config: module ES2022 → NodeNext
  • Updated GitHub workflows for npm-based CI

Example Usage

import { Data } from '@objectstack/spec';

export const myObject = Data.ObjectSchema.create({
  name: 'my_object',
  label: 'My Object',
  fields: {
    name: {
      type: 'text',
      label: 'Name',
      required: true
    }
  }
});

Developers can now clone this repository and extend the minimal examples to build custom ObjectStack plugins following current protocol specifications.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • protocol.objectstack.ai
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

清空这个项目的所有内容,按照官网文档的要求,把这个项目改造成一个真正的启动项目模版

https://protocol.objectstack.ai/docs/developers/writing-plugins


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits February 2, 2026 05:19
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Copilot AI changed the title [WIP] Create a true startup project template Transform to minimal ObjectStack plugin starter template Feb 2, 2026
Copilot AI requested a review from hotlong February 2, 2026 05:24
@hotlong hotlong marked this pull request as ready for review February 2, 2026 05:27
Copilot AI review requested due to automatic review settings February 2, 2026 05:27
@hotlong hotlong merged commit b43ab57 into main Feb 2, 2026
5 of 8 checks passed
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request restructures the repository from a multi-package monorepo with CRM/example content into a single, minimal ObjectStack plugin starter template aligned with @objectstack/spec v0.8.2, and updates tooling and CI accordingly.

Changes:

  • Replace the monorepo (core/examples packages) with a single package exposing a minimal plugin: config, one example object, and two example views.
  • Add focused starter source files under src/ (objectstack.config.ts, objects/example.object.ts, views/example.view.ts, index.ts, example.ts) and a new root tsconfig.json.
  • Migrate tooling from pnpm workspaces to npm (scripts, workflows, ignore rules) and update documentation to describe plugin-oriented usage instead of multiple example apps.

Reviewed changes

Copilot reviewed 48 out of 51 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tsconfig.json Replaces monorepo project references with a single-project TS config targeting NodeNext and emitting to dist/, matching the new single-package layout.
src/objectstack.config.ts Introduces the plugin manifest (System.ObjectStackManifest) providing a minimal, clearly documented starting point for plugin metadata.
src/objects/example.object.ts Adds a simple example_object schema using Data.ObjectSchema.create, demonstrating current Data protocol usage and field definitions.
src/views/example.view.ts Adds example grid and kanban list views wired to example_object, illustrating basic UI.ListView configuration.
src/index.ts Defines the package entrypoint, re-exporting config, object, views, and protocol types to present a clean public API surface.
src/example.ts Provides a runnable example script that exercises the config, object schema, and views to show how the plugin would be consumed.
package.json Renames the package to @objectstack/starter-plugin, removes workspace semantics, updates scripts for a single build and example, and bumps TS and @objectstack/spec versions.
README.md Rewrites documentation from monorepo + CRM examples to a focused plugin starter guide, aligning examples and project structure with the new layout and spec v0.8.2.
.gitignore Simplifies ignore rules for a single-package project and removes monorepo-specific patterns, though it currently also ignores package-lock.json despite npm-based CI.
.github/workflows/ci.yml Converts CI from pnpm multi-package builds/examples to npm-based type-check, build, and a single example run for the new plugin.
.github/workflows/code-quality.yml Adapts code-quality checks to the single-package layout, ensuring TS type-check, build, structure validation, and example execution under npm.
.github/workflows/release.yml Simplifies the release process to build and generate releases for the single package, attaching root-level artifacts only.
pnpm-workspace.yaml, pnpm-lock.yaml Remove pnpm workspace and lockfile since the project is no longer a pnpm-based monorepo.
packages/core/**, packages/examples/**, CRM_DOCUMENTATION.md Remove the previous core and example packages (objects, views, examples, docs) that are no longer part of the minimal plugin template.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

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


- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

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

The CI workflow installs dependencies with npm ci, but the repository ignores package-lock.json in .gitignore, so no lockfile will be committed and npm ci will fail. Either switch this step to npm install or stop ignoring package-lock.json and commit a lockfile so npm ci has the required input.

Suggested change
run: npm ci
run: npm install

Copilot uses AI. Check for mistakes.

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

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

This workflow uses npm ci to install dependencies, but .gitignore excludes package-lock.json, so the lockfile will not exist in CI and npm ci will fail. Consider using npm install here or removing package-lock.json from .gitignore and committing a lockfile.

Suggested change
run: npm ci
run: npm install

Copilot uses AI. Check for mistakes.

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

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

npm ci requires a committed package-lock.json, but the repo currently ignores package-lock.json in .gitignore, so releases will fail at this step. Align this with the dependency strategy by either using npm install or tracking a lockfile in the repo.

Suggested change
run: npm ci
run: npm install

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants