From 72df53b7834ecd79b201c9db2d6982384a1efcfe Mon Sep 17 00:00:00 2001 From: Srikanth Patchava Date: Thu, 10 Sep 2026 17:57:05 -0700 Subject: [PATCH] chore(governance): community rollout for eAI --- .github/PULL_REQUEST_TEMPLATE.md | 7 ++ .github/workflows/linked-issue.yml | 16 +++ AGENTS.md | 187 ++++++++++++++--------------- docs/wiki/Development.md | 55 +++++++++ docs/wiki/FAQ.md | 29 +++++ docs/wiki/Getting-Started.md | 28 +++++ docs/wiki/Home.md | 22 ++++ docs/wiki/Security.md | 13 ++ docs/wiki/_Sidebar.md | 8 ++ 9 files changed, 267 insertions(+), 98 deletions(-) create mode 100644 .github/workflows/linked-issue.yml create mode 100644 docs/wiki/Development.md create mode 100644 docs/wiki/FAQ.md create mode 100644 docs/wiki/Getting-Started.md create mode 100644 docs/wiki/Home.md create mode 100644 docs/wiki/Security.md create mode 100644 docs/wiki/_Sidebar.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6493a6b..9c0e90b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -47,6 +47,13 @@ +## Closing issue + + + +Fixes # + + ## Screenshots / Logs diff --git a/.github/workflows/linked-issue.yml b/.github/workflows/linked-issue.yml new file mode 100644 index 0000000..973e19e --- /dev/null +++ b/.github/workflows/linked-issue.yml @@ -0,0 +1,16 @@ +name: Linked issue policy + +on: + pull_request_target: + types: [opened, edited, reopened, synchronize] + +permissions: + contents: read + issues: read + pull-requests: read + +jobs: + policy: + uses: embeddedos-org/.github/.github/workflows/linked-issue-policy.yml@92cb596c773496ec4df76717e8acf0e6b7700f73 + with: + policy_ref: 92cb596c773496ec4df76717e8acf0e6b7700f73 diff --git a/AGENTS.md b/AGENTS.md index 93f33f5..4481608 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,98 +1,89 @@ - -# Agent Responsibilities - -Each role owns a slice of the work and does only that slice. Full briefs are in -[.ai/](./.ai/). These are responsibilities, not a required agent count — one -agent may hold several roles on a small change. Split when the roles need -genuinely different context, not by default. - -One rule is structural rather than stylistic: **whoever implements does not -approve.** Review is a separate role because self-review reliably misses the -thing the implementer already believes is correct. - -## Planner — [.ai/planner.md](./.ai/planner.md) - -- Understand the request. -- Break work into tasks. -- Assign work. - -## Architect — [.ai/architect.md](./.ai/architect.md) - -- Design structure. -- Choose patterns. -- Own dependencies, scalability and maintainability. - -## Backend — [.ai/backend.md](./.ai/backend.md) - -- APIs -- Database -- Business logic - -## Frontend — [.ai/frontend.md](./.ai/frontend.md) - -- UI -- Components -- Accessibility - -## Testing — [.ai/testing.md](./.ai/testing.md) - -- Unit tests -- Integration tests -- Regression tests - -## Security — [.ai/security.md](./.ai/security.md) - -- Authentication and authorization -- Validation -- Secrets -- Dependency review - -## Performance — [.ai/performance.md](./.ai/performance.md) - -- Profiling -- Optimization -- Scalability - -## Reviewer — [.ai/reviewer.md](./.ai/reviewer.md) - -- Final review -- Verify requirements -- Merge findings - -## Documentation — [.ai/docs.md](./.ai/docs.md) - -- README -- API docs -- Changelog -- Migration and architecture notes - -## Release — [.ai/release.md](./.ai/release.md) - -- Release notes -- Deployment preparation -- Rollback guidance - ---- - -## Switching roles - -Switch when the task changes domain, when specialist knowledge is required, -when independent review is required, or when the context has grown past what -one agent can hold accurately. Every switch runs the protocol in -[HANDOFF.md](./HANDOFF.md). - -## Finding work that is not yours - -You will. The rule is: **record it, do not absorb it, do not drop it.** - -| What you found | Do | -|----------------|-----| -| A defect unrelated to your task | Note it in [TASKS.md](./TASKS.md) and keep going. | -| A defect your change would sit on top of | Stop; say it blocks you; propose fixing it as its own task. | -| A security issue | Report immediately, whatever role you hold. This one never waits for a handoff. | -| A design decision missing from the plan | Return to the architect rather than deciding it inside an implementation. | -| Work that belongs to a role nobody assigned | Say so. An unowned task is how requirements go missing. | - -Silently fixing something outside your task makes the diff unreviewable. -Silently ignoring it means nobody ever looks again. Neither is acceptable; the -note is what makes the difference. +# AGENTS.md — eAI + +eAI (CMake project `EAI`, v0.2.0) is the on-device AI layer of the EmbeddedOS +ecosystem, written in C (C11): a runtime contract for loading and running +models plus build-selectable runtimes — **EAI-Min** (lightweight agent runtime +for IoT devices) and **EAI-Framework** (industrial platform) — with +model-format loaders, optional hardware-accelerator backends, a +brain-computer-interface module, a CLI, and host/embedded platform adapters. +(Provenance: `README.md` intro, `CMakeLists.txt` `project()`/options.) + +## Layout (from `README.md` "What's inside") + +- `common/` — shared contracts and utilities (types, config, logging, model + manifest, runtime contract, tool registry, security/permissions); builds + `eai_common` +- `platform/` — platform adapters (Linux, Windows, macOS, Android, iOS, + container, Zephyr, FreeRTOS, bare-metal, EoS); builds `eai_platform` +- `min/` — EAI-Min lightweight agent runtime (agent loop, router, KV memory) +- `framework/` — EAI-Framework industrial platform (runtimes, connectors, + orchestrator, policy, observability) +- `bci/` — brain-computer-interface module +- `models/` — model manifests and metadata +- `accel/` — accelerator backends (optional Vulkan Compute, CoreML/Metal, + Qualcomm QNN) +- `formats/` — model format loaders +- `cli/` — `eai` command-line tool +- `bindings/` — C++ and Python bindings +- `profiles/` — example profiles: `adaptive-edge`, `bci-assistive`, + `industrial-gateway`, `mobile-edge`, `robot-controller`, `smart-camera` +- `tests/` — C tests plus `unit/`, `functional/`, `performance/`, + `simulation/` Python suites +- `cmake/toolchains/`, `ci/`, `docs/`, `tools/` — cross-compile toolchains, + CI build/test scripts, docs, developer tools + +`CODE_STRUCTURE.md` is the detailed, module-by-module developer reference. + +## Build (from `README.md` "Build" and `CMakePresets.json`) + +Requires CMake ≥ 3.16 and a C compiler. `CMakePresets.json` defines the +host/target presets used by CI (e.g. `linux-x64-release`). + +```bash +cmake --preset linux-x64-release +cmake --build --preset linux-x64-release + +# or without presets +cmake -B build -DCMAKE_BUILD_TYPE=Release +cmake --build build --parallel +``` + +## Test (from `README.md` "Test" and `CONTRIBUTING.md` "Development Setup") + +```bash +cmake -B build -DEAI_BUILD_TESTS=ON +cmake --build build --parallel +ctest --test-dir build --output-on-failure + +# Python-driven suites +python run_all_tests.py +``` + +`CONTRIBUTING.md` "CI Requirements" also documents profile builds (at least +one of `smart-camera`, `industrial-gateway`, `robot-controller`, +`mobile-edge`) and the nightly regression (full tests on 3 OSes, all +profiles, AArch64/ARM/RISC-V cross-compiles) as informational. + +## Lint / format + +Not defined: no lint or format command is documented in `README.md` or +`CONTRIBUTING.md`. C style rules — C11, `-Wall -Wextra` clean, platform +`#ifdef` guards, no hardcoded paths, `#ifndef` include guards, `` +types — are in `CONTRIBUTING.md` "Code Guidelines". (The dev Docker image +installs `cppcheck`/`clang-format`, but the repo documents no command to +invoke them; do not invent one.) + +## Contributing + +See `CONTRIBUTING.md`: fork, create a feature branch +(`git checkout -b feat/my-feature`), run the build and tests locally, then +submit a pull request. Follow Conventional Commits; new features need unit +tests in `tests/`; platform-specific code needs `#ifdef` guards for all +targets; every human-authored PR must close a same-repository issue with +`Fixes #`. + +## Security + +See `SECURITY.md`. Report vulnerabilities to security@embeddedos.org — do NOT +open public issues for vulnerabilities. Response SLA: acknowledgment within +48 hours. diff --git a/docs/wiki/Development.md b/docs/wiki/Development.md new file mode 100644 index 0000000..9df15a1 --- /dev/null +++ b/docs/wiki/Development.md @@ -0,0 +1,55 @@ +# Development + +## Contribution source of truth + +[CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md) + +Before proposing a change, also review the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md). Keep changes scoped, add tests appropriate to the affected behavior, and follow the repository's current automation and review requirements. + +## Build and dependency inputs found + +`CMakeLists.txt`, `Dockerfile`, `accel/CMakeLists.txt`, `bci/CMakeLists.txt`, `bindings/python/pyproject.toml`, `bindings/python/setup.py`, `cli/CMakeLists.txt`, `common/CMakeLists.txt`, `docker-compose.yml`, `formats/CMakeLists.txt`, `framework/CMakeLists.txt`, `min/CMakeLists.txt`, and 3 more. + +## Tests found in the default-branch tree + +`tests/CMakeLists.txt`, `tests/__init__.py`, `tests/functional/__init__.py`, `tests/functional/test_functional_e2e.py`, `tests/performance/__init__.py`, `tests/performance/test_performance_benchmarks.py`, `tests/simulation/__init__.py`, `tests/simulation/test_emulation_simulation.py`, `tests/test_accel.c`, `tests/test_accel_backend.c`, `tests/test_adaptive.c`, `tests/test_agent.c`, and 25 more. + +## Documented test commands + +These commands are reproduced from the inspected root README or contributing guide: + +```bash +cmake --build --preset linux-x64-release +``` + +```bash +cmake -B build -DCMAKE_BUILD_TYPE=Release +``` + +```bash +cmake --build build --parallel +``` + +```bash +cmake -B build -DEAI_BUILD_TESTS=ON +``` + +```bash +ctest --test-dir build --output-on-failure +``` + +```bash +cmake --build build +``` + +```bash +cmake -B build -DEAI_PROFILE=smart-camera +``` + +```bash +cmake --build build --config Release +``` + +## Verification baseline + +This inventory comes from `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37) and found 37 test-related paths among 345 files. Re-check the source tree when that commit is no longer current. diff --git a/docs/wiki/FAQ.md b/docs/wiki/FAQ.md new file mode 100644 index 0000000..cb84a2c --- /dev/null +++ b/docs/wiki/FAQ.md @@ -0,0 +1,29 @@ +# FAQ + +## What is `eAI`? + +[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE) + +## Which branch does this wiki describe? + +The latest publication inspected `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37). + +## Where are setup instructions? + +Start with the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md), then use [Getting Started](Getting-Started) for a concise map of the checked-in project inputs. + +## How do I contribute? + +Use the [CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md) and the evidence-backed inventory on [Development](Development). If no root contributing guide exists, inspect the README, repository automation, and recent accepted changes before proposing work. + +## How do I run tests? + +[Development](Development) lists the 37 test-related paths found in the inspected tree and reproduces recognized test commands only when they appear in the root README or contributing guide. + +## How do I report a security issue? + +Follow [Security](Security). The source-tree policy status for this publication is: [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md) + +## Is the wiki authoritative? + +No. The [embeddedos-org/eAI source tree](https://github.com/embeddedos-org/eAI) is authoritative. The wiki is a repository-specific guide to that source. diff --git a/docs/wiki/Getting-Started.md b/docs/wiki/Getting-Started.md new file mode 100644 index 0000000..56a7817 --- /dev/null +++ b/docs/wiki/Getting-Started.md @@ -0,0 +1,28 @@ +# Getting Started + +## Repository purpose + +[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE) + +## First steps + +1. Read the [README](https://github.com/embeddedos-org/eAI/blob/master/README.md) for the project's supported setup and usage path. +2. Clone the repository and enter its directory: + +```bash +git clone https://github.com/embeddedos-org/eAI.git +cd eAI +``` + +3. Check the root project inputs below before installing dependencies or selecting a build tool. +4. Review [Development](Development) before changing code, and [Security](Security) before reporting a vulnerability. + +## Root project inputs + +- `CMakeLists.txt`: CMake build definition. +- `Dockerfile`: Container build definition. +- `docker-compose.yml`: Docker Compose definition. + +## Scope note + +The default branch inspected for this page was `master` at [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37). This page intentionally does not invent a universal build command when the repository's own documentation does not provide one. diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md new file mode 100644 index 0000000..7e70a97 --- /dev/null +++ b/docs/wiki/Home.md @@ -0,0 +1,22 @@ +# eAI + +[](https://github.com/embeddedos-org/eAI/actions/workflows/ci.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/codeql.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/scorecard.yml) [](https://github.com/embeddedos-org/eAI/actions/workflows/release.yml) [](LICENSE) + +This wiki is a maintained navigation layer for [embeddedos-org/eAI](https://github.com/embeddedos-org/eAI). Source files on the `master` default branch remain authoritative for code, commands, policies, and release behavior. + +## Start here + +- [Getting Started](Getting-Started) explains how to orient yourself using the repository's checked-in entry points. +- [Development](Development) records the build manifests, contribution guidance, and tests found during the latest source inspection. +- [Security](Security) points to the repository's vulnerability-reporting policy. +- [FAQ](FAQ) answers common repository-specific navigation questions. + +## Source snapshot + +- Default branch: `master` +- Inspected source commit: [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37) +- Root project overview: [README](https://github.com/embeddedos-org/eAI/blob/master/README.md) +- Contribution guidance: [CONTRIBUTING](https://github.com/embeddedos-org/eAI/blob/master/CONTRIBUTING.md) +- Security policy: [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md) + +The wiki was generated from repository content, but it does not replace that content. If a wiki statement and the source tree disagree, follow the source tree and open a documentation correction. diff --git a/docs/wiki/Security.md b/docs/wiki/Security.md new file mode 100644 index 0000000..b91ca66 --- /dev/null +++ b/docs/wiki/Security.md @@ -0,0 +1,13 @@ +# Security + +## Reporting vulnerabilities + +The repository has a root [SECURITY](https://github.com/embeddedos-org/eAI/blob/master/SECURITY.md). Follow that policy for supported versions, reporting channels, disclosure expectations, and response details. + +Do not publish suspected vulnerabilities in a public issue unless the policy explicitly directs you to do so. Provide a clear description, affected versions or commits, reproduction details, impact, and any known mitigation through the private channel named by the policy. + +## Evidence + +- Repository: [embeddedos-org/eAI](https://github.com/embeddedos-org/eAI) +- Inspected branch: `master` +- Inspected commit: [`abd678b6c627`](https://github.com/embeddedos-org/eAI/commit/abd678b6c627f8e960657d03fa6309d1448c7c37) diff --git a/docs/wiki/_Sidebar.md b/docs/wiki/_Sidebar.md new file mode 100644 index 0000000..ea44aa9 --- /dev/null +++ b/docs/wiki/_Sidebar.md @@ -0,0 +1,8 @@ +**eAI Wiki** + +- [Home](Home) +- [Getting Started](Getting-Started) +- [Development](Development) +- [Security](Security) +- [FAQ](FAQ) +- [Source Repository](https://github.com/embeddedos-org/eAI)