JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

How to work with AI. Part 2 | JustPaste.app
1 day ago1 views
📚Education

How to work with AI. Part 2

.md files are Markdown files. Think of them as plain-text documents designed to be easy for both humans and AI systems to read.

For the kind of DC Agentiqs project you're planning, I would actually recommend using .md files heavily for requirements, architecture, rules, decisions, and agent instructions.

1. What is Markdown?

A file like:

requirements.md

is just a text file, but Markdown gives you simple formatting conventions.

For example:

# Kanji Learning Application

## Purpose

This application helps users learn Japanese kanji using
spaced repetition.

## Users

The system shall allow users to:

- Register an account
- Log in
- Study kanji
- Track progress
- View rankings

It appears roughly like:

Kanji Learning Application

Purpose

This application helps users learn Japanese kanji using spaced repetition.

Users

The system shall allow users to:

  • Register an account

  • Log in

  • Study kanji

  • Track progress

  • View rankings

But underneath, it's still just plain text.

2. Why Markdown is excellent for AI projects

AI doesn't require fancy Word formatting.

In fact, a well-structured Markdown document is often much easier for an AI to interpret consistently.

You can make the relationships explicit:

# FR-SRS-001 — Review Scheduling

## Requirement

The system shall calculate the next review date
based on the user's SRS rating.

## Input

- User
- Kanji
- Current SRS state
- Review rating
- Review timestamp

## Output

- Updated SRS state
- Next review date

## Rules

1. The server shall calculate the next review date.
2. The client shall not determine the next review date.
3. The calculation shall use the configured SRS algorithm.

## Acceptance Criteria

- Given a new card, the system creates an initial SRS state.
- Given a valid review, the system calculates a new due date.
- The calculated due date is persisted in the database.

## Related Components

- `SRSService`
- `UserKanji`
- `Review`

That is fantastic input for an AI coding agent.

3. The important thing isn't Markdown itself

This is the key point.

You don't need to learn Markdown because:

"AI understands Markdown better than Word."

Rather:

Markdown encourages you to organize information explicitly.

Compare these two.

Bad AI knowledge

The user should be able to review kanji and there should
be some kind of ranking and users should have points and
maybe streaks and the SRS should determine when they see
the card again.

The AI has to interpret your intentions.

Much better

# Study System

## Scope

The study system manages kanji reviews using SRS.

## User Actions

A user can:

1. Start a review session.
2. Answer a kanji card.
3. Select a difficulty rating.
4. Continue to the next card.

## SRS Responsibility

The server is responsible for calculating:

- SRS state
- Review interval
- Next review timestamp

The browser shall not calculate these values.

## XP

XP is awarded only after a completed review.

## Streak

A daily streak is updated when the user completes
at least one valid review during the user's local day.

Now there is much less ambiguity.

4. Use headings as information hierarchy

I recommend this hierarchy:

# Project

## Feature

### Requirement

### Rules

### Exceptions

### Acceptance Criteria

For example:

# Leaderboard

## Purpose

The leaderboard displays users ranked according to
their accumulated XP.

## Ranking Rules

Users are ordered by:

1. Total XP, descending.
2. If XP is equal, total completed reviews, descending.
3. If both are equal, earliest achievement timestamp first.

## Security

The client shall not submit XP values.

The server shall calculate XP based on validated
study events.

## Acceptance Criteria

- A user's ranking changes after valid XP is awarded.
- Invalid requests cannot directly modify XP.
- Two users with identical XP are ordered according
  to the tie-breaking rules.

Notice how you're gradually eliminating the AI's need to guess.

5. Use tables when relationships matter

Markdown tables are useful for things such as database definitions.

## User Table

| Field | Type | Required | Description |
|---|---|---|---|
| id | UUID | Yes | Unique user identifier |
| email | VARCHAR | Yes | Login email |
| password_hash | VARCHAR | Yes | Argon2 password hash |
| display_name | VARCHAR | Yes | Public username |
| created_at | TIMESTAMP | Yes | Account creation time |

Or requirements:

| ID | Requirement | Priority | Status |
|---|---|---|---|
| FR-USER-001 | User registration | Must | Approved |
| FR-USER-002 | User login | Must | Approved |
| FR-SRS-001 | Review scheduling | Must | Approved |
| FR-RANK-001 | Leaderboard | Should | Draft |

This is much easier for an AI to retrieve and reason about than a paragraph containing the same information.

6. Use code blocks for things that must be exact

Suppose your Flask project must follow a specific structure.

Don't describe it vaguely.

Use:

## Required Project Structure

```text
app/
├── __init__.py
├── models/
├── routes/
├── services/
├── repositories/
├── templates/
└── static/

tests/
├── unit/
└── integration/

Or exact commands:

```markdown
## Development Command

The application shall be started using:

```bash
flask --app app run --debug

This tells the AI:

> **This is literal information. Don't paraphrase it.**

---

# 7. Explicitly distinguish requirements from suggestions

This is extremely important when working with AI.

Use language such as:

```markdown
## Mandatory Requirements

The following requirements are mandatory and shall not
be changed without approval.

- The backend shall use Flask.
- The database shall use PostgreSQL.
- Passwords shall never be stored in plaintext.

Then:

## Design Preferences

The following are preferences rather than mandatory
requirements.

- Prefer Jinja templates over React for the initial version.
- Prefer simple server-side rendering.

And:

## Open Questions

The following decisions have not yet been finalized.

- Which SRS algorithm should be used?
- Which Kanji dataset should be used?
- Should users be able to follow friends?

This prevents an AI from treating a casual idea as an approved requirement.

8. Use "shall", "should", and "may" deliberately

For your engineering project, I'd use these consistently:

SHALL

Mandatory.

The server shall validate the review request.

SHOULD

Preferred but potentially changeable.

The application should use PostgreSQL.

MAY

Optional.

Users may choose a study session length.

This is especially appropriate given your automotive QA background.

You're essentially creating lightweight software requirements specifications in Markdown.

9. Give each requirement an ID

This becomes incredibly powerful later.

Don't write:

The user can register.

Write:

## FR-USER-001 — User Registration

The system shall allow a new user to create an account
using an email address and password.

Then your other documents can reference:

## Related Requirements

- FR-USER-001
- FR-USER-002

Your test cases can say:

TC-USER-001 → FR-USER-001

Your code documentation can say:

# Implements FR-USER-001

Now you have:

Requirement
     ↓
Design
     ↓
Code
     ↓
Test

That's essentially traceability.

And an AI agent can exploit that structure extremely well.

10. Don't put everything into one giant .md

This is another important point for your DC Agentiqs project.

Don't create:

everything.md

with 100,000 lines.

Instead:

docs/
│
├── project.md
│
├── requirements/
│   ├── user.md
│   ├── kanji.md
│   ├── srs.md
│   ├── ranking.md
│   └── administration.md
│
├── architecture/
│   ├── system.md
│   ├── database.md
│   ├── backend.md
│   └── security.md
│
├── development/
│   ├── coding_rules.md
│   └── git_rules.md
│
└── decisions/
    ├── ADR-001-flask.md
    ├── ADR-002-postgresql.md
    └── ADR-003-srs.md

Now an Agent working on SRS doesn't necessarily need to consume your entire project's documentation.

It can retrieve:

srs.md
+
database.md
+
relevant requirements
+
coding_rules.md

instead of everything.

This is exactly the kind of organization that helps with token efficiency.

11. One particularly useful file: project.md

I'd make one small file that gives every agent the project's "map."

Something like:

# Kanji Learning Application

## Purpose

A self-hosted web application for learning Japanese
kanji using spaced repetition.

## Technology

- Python
- Flask
- PostgreSQL
- SQLAlchemy
- Jinja2
- JavaScript
- pytest
- Docker

## Architecture

The application uses a Flask backend with server-side
rendered Jinja templates.

Business logic shall reside in service modules rather
than Flask route handlers.

## Major Features

1. User accounts
2. Kanji database
3. SRS study
4. Progress tracking
5. XP
6. Streaks
7. Leaderboards

## Source of Truth

Requirements are stored under:

`docs/requirements/`

Architecture decisions are stored under:

`docs/architecture/`

Approved architectural decisions are stored under:

`docs/decisions/`

## Development Rules

- Do not modify approved requirements without approval.
- Do not invent Kanji data.
- Do not store passwords in plaintext.
- Server-side validation is mandatory.
- Every feature shall have automated tests.
- Every feature shall reference its requirement IDs.

## Current Status

Phase: Foundation

Completed:
- Project repository
- Initial architecture

In Progress:
- Database design

Not Started:
- Authentication
- Kanji database
- SRS
- Leaderboard

That is an excellent orientation document for an AI agent.

12. Think of Markdown as your project's "engineering memory"

This is the mental model I'd recommend:

                 AI
                  │
                  │
        ┌─────────▼─────────┐
        │   Markdown docs   │
        │                   │
        │ Requirements      │
        │ Architecture      │
        │ Decisions         │
        │ Rules             │
        │ Test strategy     │
        └───────────────────┘
                  │
                  ▼
             Source Code
                  │
                  ▼
                Tests

The AI's chat conversation is temporary.

Your .md files are persistent project knowledge.

If tomorrow you replace one AI model with another, the project knowledge remains.

If you stop using DC Agentiqs and use another coding agent, the project knowledge remains.

If six months later you forget why you designed something a particular way, the project knowledge remains.

That's why I would strongly recommend treating your Markdown documentation as part of the actual software project, not merely notes for the AI.

One final trick that will make your AI workflow much better

For every important design decision, create an ADR (Architecture Decision Record).

Example:

# ADR-003 — Use Flask Server-Side Rendering

## Status

Accepted

## Decision

The initial version shall use Flask with Jinja2
server-side rendering instead of React.

## Reason

The application does not initially require a highly
interactive frontend. Server-side rendering reduces
frontend complexity and simplifies deployment.

## Consequences

### Positive

- Simpler architecture
- Fewer dependencies
- Easier self-hosting
- Smaller frontend codebase

### Negative

- Less suitable for highly interactive interfaces
- Some future features may require JavaScript

## Date

2026-09-21

Then when an AI later says:

"We should rewrite the frontend using React."

your Agent can see:

ADR-003 says we deliberately chose Flask/Jinja for V1.

That prevents the AI from constantly reinventing your architecture.

For the project you're imagining, I'd aim for small, highly structured Markdown documents + Git + tests + specialized Agentiqs agents, rather than trying to make one enormous prompt contain your entire project's knowledge.

← Back to timeline