Skip to content

experiment(0027): add SDLC experiment with iterative waterfall diagram - #49

Open
Roming22 wants to merge 1 commit into
fullsend-ai:mainfrom
Roming22:main
Open

experiment(0027): add SDLC experiment with iterative waterfall diagram#49
Roming22 wants to merge 1 commit into
fullsend-ai:mainfrom
Roming22:main

Conversation

@Roming22

Copy link
Copy Markdown

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED

@Roming22
Roming22 requested a review from a team as a code owner August 10, 2026 14:23
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add SDLC experiment docs with iterative waterfall Mermaid diagram (0027)

📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Add experiment 0027 write-up documenting an SDLC “big picture” hypothesis and conclusions.
• Add a Mermaid state diagram capturing an iterative waterfall SDLC reference model.
• Document key caveats: diagram complexity, simplifications, and need for drill-down groupings.
Diagram

graph TD
  A["0027-sdlc/README.md"] --> B["SDLC experiment summary"] --> C["0027-sdlc/sdlc-diagram.md"] --> D["Mermaid stateDiagram-v2"]
  D --> E["SDLC phases + feedback loops"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Layered diagrams (overview + drill-down per phase)
  • ➕ Much easier to understand at a glance; reduces cognitive load
  • ➕ Enables stable “30,000ft view” with optional detail pages
  • ➕ Keeps Mermaid diagrams smaller and more maintainable
  • ➖ Requires splitting and maintaining multiple diagrams
  • ➖ Cross-links between phases become more work to represent
2. Use Mermaid subgraphs/links with a single top-level diagram
  • ➕ Preserves one canonical entry point
  • ➕ Allows navigation to deeper sections without losing context
  • ➖ Mermaid navigation/linking support varies by renderer
  • ➖ Still risks being too dense if overused
3. Adopt a standard framework view (e.g., Scrum/Kanban + DevOps loop)
  • ➕ More immediately recognizable to many readers
  • ➕ Potentially less debate about taxonomy and transitions
  • ➖ May not capture the intended “skills/transitions” focus
  • ➖ Can obscure non-agile/non-product work (compliance, InfoSec, etc.)

Recommendation: The current approach (a single comprehensive iterative-waterfall state diagram) is acceptable as a reference artifact, but it will be hard to consume and evolve. Consider adding a simplified top-level overview diagram plus drill-down diagrams per phase (Ideation/Planning/Implementation/etc.) while keeping this detailed diagram as the deep reference.

Files changed (2) +174 / -0

Documentation (2) +174 / -0
README.mdAdd experiment 0027 SDLC write-up with hypothesis and conclusions +30/-0

Add experiment 0027 SDLC write-up with hypothesis and conclusions

• Introduces a new experiment README describing the SDLC big-picture hypothesis, approach, results, and conclusion notes. Captures key caveats about complexity, simplifications, and the need for grouping/drill-down views.

0027-sdlc/README.md

sdlc-diagram.mdAdd Mermaid state diagram for iterative waterfall SDLC +144/-0

Add Mermaid state diagram for iterative waterfall SDLC

• Adds a Mermaid stateDiagram-v2 modeling SDLC phases from Ideation through Maintenance with feedback loops. Includes sub-states for implementation (Code/Quality), deployment monitoring, support/maintenance, and InfoSec touchpoints.

0027-sdlc/sdlc-diagram.md

@qodo-code-review

qodo-code-review Bot commented Aug 10, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📜 Skill insights (0)

Grey Divider


Action required

1. Leading-zero title blocked ✓ Resolved 🐞 Bug ≡ Correctness
Description
0027-sdlc/README.md sets the frontmatter title and the H1 to 0027. ..., which violates
hack/lint-experiment-numbers (it rejects leading zeros like 0027.) and will fail the
experiment-number lint hook for this PR.
Code

0027-sdlc/README.md[R2-3]

+title: "0027. Software Development Life Cycle"
+status: Concluded
Relevance

●●● Strong

Leading-zero title/H1 violates documented lint rules; straightforward fix to pass hooks.

PR-#36

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The new experiment’s title/H1 start with 0027., and the repo’s lint-experiment-numbers hook
explicitly errors on frontmatter titles and H1 headings that start with a leading zero number. The
pre-commit config wires this hook to run for experiment paths.

0027-sdlc/README.md[1-10]
hack/lint-experiment-numbers[91-102]
.pre-commit-config.yaml[34-47]
0007-github-actions-agent-runtime-mvp/README.md[1-10]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`hack/lint-experiment-numbers` enforces that experiment titles/H1 headings do **not** include leading zeros (e.g., `0027.`). The new experiment uses `0027.` in both frontmatter `title` and the H1, which will cause the lint hook to fail.

## Issue Context
Other experiments follow the non-zero-padded convention in frontmatter + H1 (e.g., `7. ...`). The frontmatter lint also requires the H1 to match `title` exactly, so they must be updated together.

## Fix Focus Areas
- 0027-sdlc/README.md[1-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. README missing 0027 row 📘 Rule violation ≡ Correctness
Description
A new experiment directory 0027-sdlc/ was added, but the root experiment index table in
README.md does not include an entry for experiment 0027, breaking the required sync between
on-disk experiments and the README index. This can cause discovery/audit gaps and will cause
hack/lint-experiment-index to fail because every experiment on disk must have a corresponding row.
Code

0027-sdlc/README.md[R1-3]

+---
+title: "0027. Software Development Life Cycle"
+status: Concluded
Relevance

●●● Strong

Repo enforces README experiment index sync; missing row likely fails lint/CI, so they’ll add it.

PR-#36

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1742046 requires the root README.md experiment index table to contain exactly one
row per experiment present on disk, and the hack/lint-experiment-index script enforces this by
enumerating experiment entries that match ^\d{4}- and erroring if any are missing from the README
table. The PR adds the 0027-sdlc/ experiment (as evidenced by its experiment README
frontmatter/title), but the root README.md table currently lists experiments only through 0026
and has no 0027 row, so the linter/compliance check will report the experiment as missing.

Rule 1742046: Keep README experiment index in sync with experiments on disk
0027-sdlc/README.md[1-3]
README.md[5-35]
hack/lint-experiment-index[23-34]
hack/lint-experiment-index[36-62]
README.md[7-35]
.pre-commit-config.yaml[49-55]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Update the repository root `README.md` experiment index table so it includes an entry for the newly added on-disk experiment `0027-sdlc/`; otherwise the required README↔disk synchronization is broken and `hack/lint-experiment-index` will fail.

## Issue Context
Compliance (PR Compliance ID 1742046) requires the root README experiment index table to have exactly one row per experiment directory present on disk. The index linter (`hack/lint-experiment-index`) enumerates experiment directories/files at the repo root that match `^\d{4}-` and ensures each number appears as a corresponding `| NNNN | ...` row in `README.md`. This PR adds `0027-sdlc/` (confirmed by `0027-sdlc/README.md`), but the root `README.md` currently stops at `0026`, so `0027` is missing from the index.

## Fix Focus Areas
- README.md[5-35]
- 0027-sdlc/README.md[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Whitespace-only blank lines ✓ Resolved 🐞 Bug ⚙ Maintainability
Description
0027-sdlc/sdlc-diagram.md includes whitespace-only blank lines; the configured
trailing-whitespace hook will rewrite these lines and can fail pre-commit/CI when hooks are
enforced.
Code

0027-sdlc/sdlc-diagram.md[R7-10]

+    state 01.Ideation {
+        direction LR
+        
+        01customer: Customer feedback
Relevance

●●● Strong

Whitespace-only lines trigger trailing-whitespace hook; teams typically accept mechanical formatting
to satisfy pre-commit.

PR-#36

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The pre-commit configuration enables trailing-whitespace, and the diagram file contains blank
lines that include indentation spaces (not empty lines). These are exactly what that hook strips.

.pre-commit-config.yaml[5-9]
0027-sdlc/sdlc-diagram.md[7-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The Mermaid markdown file contains whitespace-only blank lines. The repo enables the `trailing-whitespace` pre-commit hook, which will strip these and can cause pre-commit/CI failures until the file is clean.

## Issue Context
Whitespace-only lines are easy to accidentally introduce when indenting Mermaid blocks.

## Fix Focus Areas
- 0027-sdlc/sdlc-diagram.md[7-12]
- .pre-commit-config.yaml[5-9]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context
✅ Compliance rules (platform): 19 rules
✅ Skills: writing-how-to

Grey Divider

Tip of the day
💡 Did you know, you can group findings by type and pick your Finding display, from Minimal to Full

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread 0027-sdlc/README.md
Comment thread 0027-sdlc/README.md Outdated
Comment thread 0027-sdlc/sdlc-diagram.md
@ralphbean

Copy link
Copy Markdown
Member

@Roming22 and I talked about this privately last week. He wanted to explore the larger SDLC so that we could have a map of all the "places we want to go" - phases of the SDLC that fullsend default agents don't automate today, but which (if our goal is to really automate the entire thing) we should considering building agents for in the future.

I suggested that he contribute it to the experiments repo, thinking that it is kind of like a "spike". Some research done.

I thought it was probably premature to commit it to the docs/ dir of the main repo, because it might make it look like more of a roadmap than I want it to at this time - so, committing it here to avoid losing the work without promoting it too much on the fullsend.sh site.

Comment thread 0027-sdlc/sdlc-diagram.md
}
}

09.InfoSec

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.

[Medium] Non-blocking. The diagram omits a decommissioning/EOL phase — there's no exit from the lifecycle. Every software product eventually reaches end-of-life, and without this the waterfall appears to loop indefinitely. Consider adding a 10.Decommission phase with a transition from 08.Maintenance. Release management (versioning, changelogs) between build and deployment is also absent.

The conclusion acknowledges gaps ("we can't document what we don't know"), but decommissioning is a well-understood process worth including in a reference diagram.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Added

Comment thread 0027-sdlc/sdlc-diagram.md
05e2e --> 05build: Build release candidate
}

state 06.Testing {

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.

[Low] Non-blocking. The Testing phase defines three sub-states but no transitions between them, unlike other phases (e.g., Implementation, Planning) that model internal flow. Consider adding transitions to show that e2e gates the others:

06e2e --> 06perf: Stable
06e2e --> 06security: Stable

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

That's because in my mind those can happen in parallel. So there is a transition from (Build) Release to Testing, then from Testing to Deployment.

Comment thread 0027-sdlc/sdlc-diagram.md
06security: Security testing
}

state 07.Deployment {

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.

[Low] Non-blocking. Same as Testing — Deployment defines six sub-states with no transitions between them. Consider adding minimal transitions to show the flow, e.g.:

07install --> 07config: Configured
07config --> Monitor: Live
Monitor --> 07update: Issue detected

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Some configuration might be needed pre-install, config can be changed post install. A change in the config does not trigger the deployment of new version.

So I left it quite loose on purpose, as it seems a bit hard to model properly.

Comment thread 0027-sdlc/README.md Outdated
Comment thread 0027-sdlc/README.md
What is the big picture of the SDLC process?

## Approach

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.

[Low] Non-blocking. The Approach section is quite thin compared to other experiments that detail reproducible setups. Since this is a conceptual reference artifact rather than a reproducible experiment, consider adding a HOW_TO.md that clarifies this — e.g., explaining that this is a map of the full SDLC to identify phases where fullsend agents could automate in the future, not a runnable experiment. This would help future readers understand how to engage with it.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Fixed

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
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