Skip to main content

matter-specification-access

Guidelines for accessing and reading the Matter specification and test plans. These resources are private and in-progress, so they must be cloned or requested.

معلومات المصدر

المستودع
project-chip/connectedhomeip
آخر نشاط في المصدر
٢١ أبريل ٢٠٢٦ في ١٨:٣٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨٬٩٦٠
التفرعات
٢٬٤٨٦

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
matter-specification-access
description
Guidelines for accessing and reading the Matter specification and test plans. These resources are private and in-progress, so they must be cloned or requested.
# Matter Specification Access ## Overview The Matter specification and test plans are private repositories. Agents cannot assume they know the latest specification content as it is actively developed. This skill describes how to obtain and read these documents. ## Repositories - **Matter Specification**: `git@github.com:CHIP-Specifications/connectedhomeip-spec.git` - **Test Plans**: `git@github.com:CHIP-Specifications/chip-test-plans.git` ## Cloning Guidelines - **Check for existing checkout**: Before cloning, check if the repository is already available locally (e.g., in the user's home directory or a known location). - **Do NOT dirty the source tree**: Always clone into a location that is ignored or temporary. - Recommended location: `out/` directory (e.g., `out/spec`, `out/test_plans`) as it is automatically ignored by the SDK build system and typically ignored by Git. - Alternative: A system temporary directory. - **Use Shallow Cloning**: The repositories are very large. Always use `--depth 1` when cloning to save time and disk space. ```bash git clone --depth 1 git@github.com:CHIP-Specifications/connectedhomeip-spec.git out/spec git clone --depth 1 git@github.com:CHIP-Specifications/chip-test-plans.git out/test_plans ``` ## Verifying Access Since these repositories are private, some agents (e.g., running in CI or restricted environments) may not have access. - **Lightweight Check**: Before attempting to clone the massive repositories, verify access using a non-interactive `git ls-remote`. This checks remote references without downloading any objects, while ensuring SSH fails fast instead of hanging on host-key or passphrase prompts. ```bash GIT_SSH_COMMAND='ssh -o BatchMode=yes -o ConnectTimeout=5' \ git ls-remote git@github.com:CHIP-Specifications/connectedhomeip-spec.git ``` - **Handling Failure**: If the command fails or would otherwise require interactive credentials or host-key confirmation (which automated agents cannot provide), assume access is unavailable. In this case: - Ask the user for help or to provide the necessary files. - Fall back to assuming the specification content is unknown and out of scope (as per general principles in `AGENTS.md`). ## Reading the Specification The specification is written in **`AsciiDoc`** format. - **Prerequisites**: Generating Markdown from `AsciiDoc` requires **Docker**. - **Context Pollution**: `AsciiDoc` files may contain extensive license blurbs that can pollute the LLM context. - **Conversion to Markdown**: It is highly recommended to convert the spec to Markdown for better readability and reduced noise. - Use the tool `tools/matter-to-markdown.sh` in the spec repository. - **In-Progress Items**: To include in-progress work (which the SDK often tracks), pass `--include-in-progress 1` to the script. This enables the general `in-progress` flag in `Asciidoctor`. You can also pass specific feature flags if known (e.g., `--include-in-progress lsf`). - Example command to build all specs with in-progress items: ```bash cd out/spec && ./tools/matter-to-markdown.sh --spec all --include-in-progress 1 ``` - **Targeted Reading**: The specification is extremely long. Avoid reading whole files if possible. ### Finding Information in Generated Markdown Output is written to `build/markdown/<ref_label>/` (e.g., `build/markdown/master/` if on master branch). - **Cluster Specification**: - Located in `build/markdown/<ref_label>/appclusters/` subdirectory. - Files are split by chapters (e.g., `03-lighting.md`, `11-cameras.md`). - Each file contains the clusters belonging to that functional domain. Look at `_index.md` in that directory for a list of chapters. - **Device Type Specification**: - Located in `build/markdown/<ref_label>/device_library/` subdirectory. - Files are split by chapters (e.g., `04-lighting-device-types.md`, `16-camera-device-types.md`). - Each file contains the device types for that domain. - Look at `_index.md` in that directory for a list of chapters. ## Reading Test Plans Test plans are also in **`AsciiDoc`** format. - **No Markdown Conversion**: There is currently no official markdown conversion flow for test plans. They should be read as `AsciiDoc`. - **Location**: - **Cluster Test Plans**: Individual cluster test plans are generally located in `src/cluster` within the test plans repository. - **Filenames**: Filenames typically match the cluster name, but capitalization varies. Examples: `src/cluster/AccessControl.adoc`, `src/cluster/identify.adoc`, `src/cluster/onoff.adoc`. - **System Test Plans**: Test plans for system-level features (like Interaction Model, Secure Channel) are often located in `src/` directly (e.g., `src/interactiondatamodel.adoc`, `src/securechannel.adoc`). - **Finding Information**: Use `grep` or similar tools to find the specific cluster name or feature in `out/test_plans/src/cluster` or `out/test_plans/src/`.
عرض على GitHub