Skip to content

docs: add AI engineering guidance#3691

Open
nandahtoon wants to merge 17 commits into
openMF:devfrom
nandahtoon:docs/ai-engineering-guidance
Open

docs: add AI engineering guidance#3691
nandahtoon wants to merge 17 commits into
openMF:devfrom
nandahtoon:docs/ai-engineering-guidance

Conversation

@nandahtoon

@nandahtoon nandahtoon commented Jun 27, 2026

Copy link
Copy Markdown

Description

Describe the changes made and why they were made instead of how they were made. List any dependencies that are required for this change.

Related issues and discussion

#{Issue Number}

Screenshots, if any

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • If you have multiple commits please combine them into one commit by squashing them.

  • Read and understood the contribution guidelines at web-app/.github/CONTRIBUTING.md.

Summary by CodeRabbit

  • Documentation
    • Added an end-to-end engineering guidance document for AI-assisted development in the app, including decision guardrails, a phased roadmap, UI direction, and coding checklists.
    • Added a project scope document for the MCOP initiative, detailing in-scope/out-of-scope areas, principles, success criteria, and relationship guidance.
  • Chores
    • Updated Stylelint configuration to improve SCSS linting and validation.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@nandahtoon, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 50 minutes and 29 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7fd5676c-3ae5-4ef3-8af5-4d6ab2a9965a

📥 Commits

Reviewing files that changed from the base of the PR and between bfaf0d5 and a53eae1.

⛔ Files ignored due to path filters (1)
  • .github/PULL_REQUEST_TEMPLATE.md is excluded by !.github/** and included by **/*
📒 Files selected for processing (13)
  • docs/AI_COPILOT_ARCHITECTURE.md
  • docs/AI_DEVELOPMENT_WORKFLOW.md
  • docs/API_DESIGN_GUIDELINES.md
  • docs/ARCHITECTURE_PRINCIPLES.md
  • docs/CONTRIBUTING_AI.md
  • docs/DEFINITION_OF_DONE.md
  • docs/FINERACT_EXTENSION_GUIDE.md
  • docs/HUMAN_APPROVAL_CHECKLIST.md
  • docs/MODULE_BOUNDARIES.md
  • docs/PERFORMANCE_GUIDELINES.md
  • docs/PRODUCT_ROADMAP.md
  • docs/RISKOPS_LITE_ARCHITECTURE.md
  • docs/SECURITY_GUIDELINES.md

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "pre_merge_checks"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

A new AI engineering guidance document and a project scope document were added, and .stylelintrc.json was updated for SCSS-aware Stylelint rules. No application code changed.

Changes

AI Engineering Guidance Documentation

Layer / File(s) Summary
AI engineering guidance document
docs/AI_ENGINEERING_GUIDANCE.md
Creates a guidance page with guardrails, phased roadmap, API/UI rules, checklists, and a suggested GitHub issue.

Project Scope Documentation

Layer / File(s) Summary
Project scope document
docs/PROJECT_SCOPE.md
Creates a scope document covering product identity, principles, in-scope and out-of-scope areas, a relationship diagram, and success criteria.

Stylelint Configuration

Layer / File(s) Summary
Stylelint config update
.stylelintrc.json
Adds standard and recommended SCSS Stylelint extensions, registers the SCSS plugin, disables selector-class-pattern, and enables scss/at-rule-no-unknown.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: adding AI engineering guidance documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
docs/AI_ENGINEERING_GUIDANCE.md (2)

5-5: 📐 Maintainability & Code Quality | 🔵 Trivial

Consider parameterizing repository reference.

The scope line hardcodes nandahtoon/Mifosx-web-app. If this guidance is ever forked or the repository renamed, this becomes stale. Consider using a more generic reference or noting that this should be updated if moved.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/AI_ENGINEERING_GUIDANCE.md` at line 5, The scope line hardcodes the
repository name, which can become stale if the guidance is forked or renamed.
Update the opening scope text in AI_ENGINEERING_GUIDANCE.md to use a generic
repository reference or a note that it should be changed when moved, so the
document stays portable without tying it to nandahtoon/Mifosx-web-app.

89-102: 📐 Maintainability & Code Quality | 🔵 Trivial

Consider noting Angular standalone component approach.

The suggested dashboard.module.ts and dashboard-routing.module.ts imply NgModules. If the project is on Angular 20, standalone components are the modern default. Consider adding guidance on whether to:

  1. Stay consistent with existing NgModule patterns in this codebase, or
  2. Adopt standalone components for new features.

This affects the suggested structure and long-term maintainability.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/AI_ENGINEERING_GUIDANCE.md` around lines 89 - 102, The dashboard
structure guidance currently implies NgModule-based files like
dashboard.module.ts and dashboard-routing.module.ts, which may conflict with
Angular 20’s standalone default. Update the guidance to explicitly state whether
new dashboard features should follow the existing NgModule pattern or use
standalone components, and align the listed artifacts accordingly. Reference the
dashboard component area and routing/module naming so readers know whether to
create dashboard.component.ts with standalone imports or keep module-based
organization.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/AI_ENGINEERING_GUIDANCE.md`:
- Line 54: The CI fallback in the build workflow regenerates the dependency
graph by deleting package-lock.json and rerunning npm install after npm ci
fails, which should be removed. Update the workflow logic in the build job so it
fails fast on npm ci errors instead of retrying with a regenerated lockfile, and
keep the existing lockfile as the source of truth. Locate the fallback around
the build workflow’s npm ci handling and remove the delete-and-reinstall branch.

---

Nitpick comments:
In `@docs/AI_ENGINEERING_GUIDANCE.md`:
- Line 5: The scope line hardcodes the repository name, which can become stale
if the guidance is forked or renamed. Update the opening scope text in
AI_ENGINEERING_GUIDANCE.md to use a generic repository reference or a note that
it should be changed when moved, so the document stays portable without tying it
to nandahtoon/Mifosx-web-app.
- Around line 89-102: The dashboard structure guidance currently implies
NgModule-based files like dashboard.module.ts and dashboard-routing.module.ts,
which may conflict with Angular 20’s standalone default. Update the guidance to
explicitly state whether new dashboard features should follow the existing
NgModule pattern or use standalone components, and align the listed artifacts
accordingly. Reference the dashboard component area and routing/module naming so
readers know whether to create dashboard.component.ts with standalone imports or
keep module-based organization.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 06d2165c-255d-49d0-972e-d1911f236700

📥 Commits

Reviewing files that changed from the base of the PR and between b23dcbc and 7f143e9.

📒 Files selected for processing (1)
  • docs/AI_ENGINEERING_GUIDANCE.md

- Run `npm run lint`.
- Run `npm run test:ci`.
- Run `npm run build:prod`.
- Remove CI fallback that deletes `package-lock.json` and runs `npm install`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for CI configurations that delete package-lock or use npm install fallback
fd -i -e yml -e yaml .github/ | xargs grep -l 'package-lock\|npm install' 2>/dev/null
rg -n 'rm.*package-lock|npm install' .github/ --type yaml 2>/dev/null | head -20

Repository: openMF/web-app

Length of output: 622


🏁 Script executed:

#!/bin/bash
sed -n '30,48p' .github/workflows/build.yml

Repository: openMF/web-app

Length of output: 620


Remove the lockfile-regenerating CI fallback
.github/workflows/build.yml deletes package-lock.json and reruns npm install on npm ci failure, which can let CI pass against a different dependency graph than the committed lockfile. Surface the failure instead of regenerating the lockfile here.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/AI_ENGINEERING_GUIDANCE.md` at line 54, The CI fallback in the build
workflow regenerates the dependency graph by deleting package-lock.json and
rerunning npm install after npm ci fails, which should be removed. Update the
workflow logic in the build job so it fails fast on npm ci errors instead of
retrying with a regenerated lockfile, and keep the existing lockfile as the
source of truth. Locate the fallback around the build workflow’s npm ci handling
and remove the delete-and-reinstall branch.

@IOhacker IOhacker left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@nandahtoon could you please add a video how it is being used?

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.

2 participants