Skip to content

feat: Add lingma support#2348

Open
WhiteGive-Boy wants to merge 9 commits intogithub:mainfrom
WhiteGive-Boy:add-lingma-support
Open

feat: Add lingma support#2348
WhiteGive-Boy wants to merge 9 commits intogithub:mainfrom
WhiteGive-Boy:add-lingma-support

Conversation

@WhiteGive-Boy
Copy link
Copy Markdown

Summary

Add built-in integration support for Lingma (通义灵码 by Alibaba) IDE.

Changes

New Integration: Lingma IDE

  • Integration class: LingmaIntegration (src/specify_cli/integrations/lingma/__init__.py)
    • Extends SkillsIntegration with .lingma/skills/speckit-<name>/SKILL.md layout
    • IDE-based (requires_cli: False), no CLI tool check required
    • Context file: .lingma/rules/specify-rules.md
  • Registry: Added import and _register() call in src/specify_cli/integrations/__init__.py
  • Catalog: Added lingma entry in integrations/catalog.json
  • Tests: Added tests/integrations/test_integration_lingma.py (26 tests, all passing)

Copy link
Copy Markdown
Contributor

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

Adds a new built-in Lingma (通义灵码) integration to Spec Kit so specify init / specify integration install can scaffold Lingma’s skills-based file layout and context rules.

Changes:

  • Introduces LingmaIntegration as a SkillsIntegration using .lingma/skills/speckit-<name>/SKILL.md plus .lingma/rules/specify-rules.md.
  • Registers the new integration in the built-in integration registry and catalog.
  • Adds a skills integration test suite entry for lingma.
Show a summary per file
File Description
src/specify_cli/integrations/lingma/__init__.py Implements the new Lingma integration (skills layout + context file + options).
src/specify_cli/integrations/__init__.py Registers LingmaIntegration in the built-in integration registry.
integrations/catalog.json Adds lingma to the built-in integration catalog metadata.
docs/reference/integrations.md Documents Lingma in the supported integrations table.
tests/integrations/test_integration_lingma.py Adds inherited skills integration tests for the new integration key/layout.

Copilot's findings

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 1

Comment thread src/specify_cli/integrations/lingma/__init__.py
Copy link
Copy Markdown
Collaborator

@mnriem mnriem left a comment

Choose a reason for hiding this comment

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

Please address Copilot feedback

Copy link
Copy Markdown
Contributor

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.

Copilot's findings

Tip

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

Comments suppressed due to low confidence (1)

src/specify_cli/integrations/lingma/init.py:29

  • LingmaIntegration doesn’t override options(), so it inherits the default []. This will fail SkillsIntegrationTests.test_options_include_skills_flag in the new test suite and also causes --integration-options="--skills" to be rejected by strict option validation. Add an @classmethod options() that declares the --skills flag (defaulting to True if that’s the intended behavior).
class LingmaIntegration(SkillsIntegration):
    """Integration for Lingma IDE."""

    key = "lingma"
    config = {
        "name": "Lingma",
        "folder": ".lingma/",
        "commands_subdir": "skills",
        "install_url": None,
        "requires_cli": False,
    }
    registrar_config = {
        "dir": ".lingma/skills",
        "format": "markdown",
        "args": "$ARGUMENTS",
        "extension": "/SKILL.md",
    }
    context_file = ".lingma/rules/specify-rules.md"
  • Files reviewed: 5/5 changed files
  • Comments generated: 1

Comment thread src/specify_cli/integrations/lingma/__init__.py
@mnriem
Copy link
Copy Markdown
Collaborator

mnriem commented Apr 27, 2026

Please address Copilot feedback

Copy link
Copy Markdown
Contributor

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.

Copilot's findings

Tip

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

Comments suppressed due to low confidence (1)

src/specify_cli/integrations/lingma/init.py:41

  • There’s trailing whitespace at the end of the file (spaces on an otherwise blank line). This can trip linters and creates noisy diffs; please remove the trailing spaces and ensure the file ends with a single newline.
        ]
        
  • Files reviewed: 5/5 changed files
  • Comments generated: 3

Comment thread src/specify_cli/integrations/lingma/__init__.py
Comment thread integrations/catalog.json
Comment thread docs/reference/integrations.md
@mnriem
Copy link
Copy Markdown
Collaborator

mnriem commented Apr 28, 2026

Please address Copilot feedback. If not applicable, please explain why

- Add blank line after __future__ import (PEP 8)
- Remove trailing whitespace at end of lingma/__init__.py
- Bump integrations/catalog.json updated_at timestamp
- Add Lingma to supported agent list in README.md
Copy link
Copy Markdown
Contributor

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.

Copilot's findings

Tip

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

  • Files reviewed: 6/6 changed files
  • Comments generated: 3

Comment thread README.md Outdated
Comment thread src/specify_cli/integrations/lingma/__init__.py
Comment thread src/specify_cli/integrations/lingma/__init__.py Outdated
@mnriem
Copy link
Copy Markdown
Collaborator

mnriem commented Apr 29, 2026

Please address Copilot feedback. If not applicable, please explain why. Please include positive and negative tests

- Reword module docstring: Lingma is a brand-new skills-only integration
  with no prior command-mode history, so 'deprecated since v0.5.1'
  wording (copied from Trae) was misleading
- Remove Lingma from README CLI-tool check list: Lingma is IDE-based
  (requires_cli=False) and is explicitly skipped by specify init /
  specify check tool detection
@WhiteGive-Boy
Copy link
Copy Markdown
Author

WhiteGive-Boy commented May 3, 2026

Please address Copilot feedback. If not applicable, please explain why. Please include positive and negative tests

Thanks for the review! For Comment 1 (the options() / --skills one): this matches the project convention across all other SkillsIntegration subclasses — see TraeIntegration, CursorAgentIntegration, KimiIntegration, and CodexIntegration, which all declare the exact same --skills flag with default=True. The flag is intentionally exposed so that (a) test_options_include_skills_flag passes, and (b) --integration-options="--skills" is accepted by strict option validation. In fact, the previous round of Copilot review explicitly asked me to add this same options() override for that reason. I'd prefer to stay consistent with the other skills integrations unless @mnriem wants a broader refactor across all of them. Comments 2 and 3 are addressed in the latest commit.

Copy link
Copy Markdown
Contributor

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.

Copilot's findings

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 0 new

@mnriem
Copy link
Copy Markdown
Collaborator

mnriem commented May 4, 2026

Please resolve conflicts

Copy link
Copy Markdown
Contributor

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.

Copilot's findings

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 0 new

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