Skip to main content

Reflective-writing analysis — metacognition, criticality, depth (Moon-style bands)

Project description

reflection-analyser

Reflective-writing analysis — the lens-family member that reads a learning journal / reflection / portfolio entry as reflection, not just as prose.

document-analyser reads readability; this reads reflective depth. Different signals from the same words. Explicit-only (auto_routable: false) — same pattern as conversation-analyser: text and prose extensions auto-route to document-analyser; invoke reflection-analyser deliberately when you want the reflective-depth interpretation.

Built around the markers commonly used in reflective-writing rubrics (Moon's depth scale, Gibbs' reflective cycle, the SOLO taxonomy): metacognition, criticality, evidence linkage, affect language, and forward-looking action.

Install

pip install reflection-analyser

Optional: read .pdf / .docx / .pptx journals (otherwise plain-text / .md only):

pip install 'reflection-analyser[documents]'

Use

Python:

from reflection_analyser import ReflectionAnalyser

# From text directly
result = ReflectionAnalyser().analyse_text("Looking back, I realised that…")

# From a file (composes on document-analyser for binary docs when [documents] is installed)
result = ReflectionAnalyser().analyse("journal.md")
result = ReflectionAnalyser().analyse("journal.docx")  # requires [documents]

print(result.depth_band)               # "dialogic"
print(result.composite_depth_score)    # 0.62
print(result.metacognition.count)      # 7
print(result.criticality.count)        # 3

CLI:

reflection-analyser journal.md
reflection-analyser journal.txt --json
reflection-analyser journal.docx                 # needs [documents] extra
echo "Looking back…" | reflection-analyser -
reflection-analyser serve
reflection-analyser manifest

HTTP (reflection-analyser serve on port 8015):

curl -F file=@journal.md http://localhost:8015/analyse

Signals

For a piece of reflective writing:

  • Metacognition — first-person + cognitive verbs (I realised, I noticed, looking back, on reflection). Surface depth indicator.
  • Criticality — contrast/qualification phrases (however, in contrast, that said, on the other hand). Marker of dialogic vs descriptive reflection.
  • Evidence — references to specific moments, sources, dates, quotes — proper-noun and citation density. Concrete vs abstract.
  • Affect — emotion words (frustrated, surprised, confident, uncertain). Too few = clinical; presence indicates engagement.
  • Action / forward-lookingnext time, going forward, I will, future-tense intent. Marker of transformative reflection.

Composite depth score (0–1) combines per-marker coverages; mapped to a Moon-style band:

Band Score Description
descriptive 0.0–0.25 "What happened" only — events recounted, little interpretation
dialogic 0.25–0.5 Some self-questioning + critical thought
critical 0.5–0.75 Multiple perspectives, evidence linkage, qualification
transformative 0.75–1.0 Forward-looking insight, evidence-linked, change-oriented

The score is a signal, not a grade — it's meant to inform human judgement, not replace it.

The family

What you want Use
Document text + readability document-analyser
Reflective depth on that text reflection-analyser (this)
Human-AI conversation analysis conversation-analyser
Any file → right engine auto-analyser

Limits

  • Lexicon-based v1 — fast, transparent, but catches phrasing not meaning. A reflective sentence without our trigger words underscores; a non-reflective sentence with I realised overscores.
  • English-only for v1.
  • Calibrated against generic reflective-writing rubrics; tune the band thresholds in _BAND_THRESHOLDS for your unit's specific rubric if needed.
  • Vision/LLM-augmented depth scoring is a possible follow-on; not in v1.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reflection_analyser-0.2.0.tar.gz (182.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reflection_analyser-0.2.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file reflection_analyser-0.2.0.tar.gz.

File metadata

  • Download URL: reflection_analyser-0.2.0.tar.gz
  • Upload date:
  • Size: 182.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for reflection_analyser-0.2.0.tar.gz
Algorithm Hash digest
SHA256 860863f667c62d7b88029cfba8b6162a24704e37e8cdf4dc3e43ff47ba535e09
MD5 f8928f8e24bea8c1a9ca775701a6a9a3
BLAKE2b-256 6aa8af4101a7cdb9ae4c17ceaceb5f0ecc79a237b20aa0ba362dfd69627814eb

See more details on using hashes here.

File details

Details for the file reflection_analyser-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for reflection_analyser-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80aa65e6403ceefff22919e309f20566cb9bc5358b379eec8551fac630fc59a4
MD5 ba3f17515bb9b1d428a056110202a55a
BLAKE2b-256 79c11470e83252458d2890e050119fab37fa0fc7a626f528fba8843a850de059

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page